Общая информация
Payment Page - платежная форма, программный модуль с пользовательским интерфейсом, который позволяет проводить оплаты. Payment Page может использоваться на сайтах и позволяет работать с платежными картами даже при отсутствии у мерчанта сертификата PCI DSS.
Работа с Payment Page строится следующим образом:
- Мерчант формирует запрос Create Payment.
- На стороне Платежной организации выполняется проверка и формирование ответа, при успешном прохождении и заполнении всех полей.
- В ответ приходит ссылка на платежную форму.
- Пользователь выполняет необходимые действия в платежной форме: указывает реквизиты и другую информацию и подтверждает готовность провести оплату.
- Платежная форма перенаправляет на 3дс и высвечивается статус оплаты.
- Плательщик нажимает на вернуться в магаз переходит на адрес в ретурн урл.
- Мерчант запрашивает статус по запросу Get Transaction Status (не рекомендуется запрашивать чаще чем каждые 3 сек), либо дожидается callback с IP 176.123.177.29.
Gate(host to host) - является одной из «точек входа» для работы с платежной платформой и предоставляет наиболее полные возможности для взаимодействия на программном уровне. Через Gate можно проводить разовые оплаты и возвраты, а также получать дополнительную информацию, например, о статусе платежа. Также этот метод походит мерчантам с сертификата PCI DSS.
Работа с Gate строится следующим образом:
- Мерчант формирует запрос Create Payment.
- На стороне Платежной организации выполняется проверка и формирование ответа, при успешном прохождении и заполнении всех полей.
- Мерчант высылает данные по карте при помощи запроса Add Payment Data to Transaction
- Мерчант перенаправляет плательщика на урл в п1 для прохождения 3дс.
- В платежной среде платежной организации и банка эквайера, на стороне требуемых систем, выполняется обработка платежа, по итогам которой мерчант запрашивает статус по запросу Get Transaction Status(не рекомендуется запрашивать чаще чем каждые 3 сек).
Create Payment
Cоздание страницы платежа на сайте мерчанта для плательщика.
Пример запроса:
CURL
curl --request POST \
--url https://api.test.ecom.emoney.tools/core/v1/payment \
--header 'Authorization: Basic Base64(Merchan_id:secret)' \
--header 'Content-Type: application/json' \
--data
'{
"amount": 1000,
"return_url": "https://example.com/return",
"callback_url": "https://example.com/callback",
"description": "Your payment description",
"payment_method": 2,
"currency":"USD"
}'
Данные
Параметр | Значение | Обязательное | Тип | Описание |
amount | 1000 | Да | int | Сумма |
return_url | https://example.com/return | Да | string | URL который отобразится у физического лица после 3ds |
callback_url | https://example.com/callback | Нет | string | URL на который отправим статус транзакции по ее завершению (успех или отказ) см табл статусов |
description | Your payment description | Нет | string | Описание платежа мерчанта |
order_id | 2611541 | Нет | int | Номер платежа в системе мерчанта |
payment_method | 2 | Да | int | Метод платежа |
currency | USD | Да | string | Валюта платежа |
Успешный ответ:
{
"id": 37102,
"url": "https://pay.test.emoney.tools?id=37081"
}
id - платежа, url - ссылка на платежную страницу
Возможные ошибки
- Нет одного из обязательных полей:
{
"error": "JsonSyntaxException"
}
- Неправильный формат:
{
"error": "JsonSyntaxException"
}
- Мерчант заблокирован:
{
"message": "Unauthorized"
}
Коды ответов:
- 0 SUCCESS
- 1000 NO_TERMINAL_FOUND No terminal configured to process this transaction
- 1001 NO_TERMINAL_COMISSION_FOUND Can not found terminal commission for available terminals
Add Payment Data to Transaction
Для Gate интеграции. Добавление данных по карте к существующей транзакции.
Пример запроса:
CURL
curl --request POST \ - url https://api.test.ecom.emoney.tools/core/v1/public/payment_data \
--header 'Content-Type: application/json' \
--data '{
"id": 37102,
"payment_details": {
"pan": "4111111111111111",
"month": "01",
"year": "2023",
"cvv": "123"
}
}'
Данные
Параметр | Значение | Обязательное | Тип | Описание |
id | 37102 | Да | int | id -транзакции платежа |
pan | 4111111111111110 | Да | string | номер банковской карты |
month | 01 | Да | string | месяц истечения карты |
year | 2023 | Да | string | год истечения карты |
order_id | 2611541 | Нет | int | Номер платежа в системе мерчанта |
cvv | 123 | Да | string | трехзначный защитный код, который находится на обратной стороне банковской карты |
Успешный ответ:
{
"code": 1011,
"msg": "Payment data stored to secure cash"
}
Возможные ошибки
- Неправильный формат или нет одного из обязательных полей:
{
"error": "JsonSyntaxException"
}
- Повторный запрос по одной транзакции:
{
"code": 1015,
"msg": "This transaction is not await payment data or not exist"
}
Get Transaction Status
Запрос получает статус конкретной платежной транзакции
Пример запроса:
CURL
curl --request GET \ --url 'https://api.test.ecom.emoney.tools/core/v1/public/payment?id=37102' \
Успешный ответ:
{
- "id": 37102,
- "created_at": "2023-10-23T08:41:58.255273Z",
"order_id": null,
"merchant": {
"name": "Филлиал нурлытау",
"company": {
"bin": "980504301209",
"name": "ТОО Прожектор перестройки",
"description": "Надежный партнер"
}
},
"description": "Your payment description",
"amount": 1000,
"customer_commission_amount": 0,
"merchant_commission_amount": null,
"completed_at": null,
"status": 400,
"transaction_type": 0,
"payment_method": 2
}
Возможные ошибки
{
"message": "Transaction not found"
}
Refund
Возврат денежных средств, можно сделать частичным.
Пример запроса:
CURL
curl --request POST \
--url https://api.test.ecom.emoney.tools/core/v1/refund \
--header 'Authorization: Basic MTA6MTIzNDU2' \
--header 'Content-Type: application/json' \
--data '{
"id": 37102,
"amount": 5
}'
id - айди транзакции оплаты, amount - сумма транзакции для возврата, можно сделать частичный возврат
Успешный ответ:
{
"id": 420838,
"status": 50
}
id - айди транзакции возврата, status - статус транзакции
Confirmation Refund
Подтверждение возврата. Срок действия между созданием и подтверждением не более 20 минут.
Пример запроса:
CURL
curl --request PATCH \
--url https://api.test.ecom.emoney.tools/core/v1/refund \
--header 'Authorization: Basic MTA6MTIzNDU2' \
--header 'Content-Type: application/json' \
--data '{
"id": 420838,
"approved": true
}'
Успешный ответ:
{
"message": "Refund sent to processing"
}
Возможная ошибка (неверная транзакция или срок действия транзакции возврата истек)
{
"message": "No transaction found"
}
Коды и статусы транзакции
Параметр | Значение | Описание | Категория статуса |
0 | WAITING_PAYMENT_DATA | Транзакция создана, ожидание информации по платежным реквизитам | Информационный |
10 | PAYMENT_DATA_TAKEN | Данные по платежным реквизитам получены | Информационный |
50 | WAITING_APPROVE | Ожидание подтверждения, в том случае если тип платежа DMS | Информационный |
51 | APPROVED | Подтверждена, для типа платежа DMS | Информационный |
100 | READY_TO_PROCESSING | Готово к процессу | Информационный |
110 | IN_PROGRESS | В процессе | Информационный |
111 | SENT_TO_TERMINAL | Отправка на терминал БВУ | Информационный |
150 | WAITING_3DS | Мерчанту необходимо Redirect на URL: | Информационный |
200 | 3DS_ACCEPTED | Пользователь перешел на страницу ввода 3дс | Информационный |
400 | FAIL | Не успех/Отказ | Финальный |
500 | SUCCESS | Успешное завершение операции | Финальный |
Коды ошибок
Параметр | Значение | Description | Описание |
0 | NO_ERRORS | ||
10 | PAYMANT_METHOD_ERROR | No payment method aialable for this merchant | Для этого мерчанта способ оплаты не доступен |
20 | PAYMENT_DETAILS_ERROR | Wrong card number, or other presented data | Неправильный номер карты или другие предоставленные данные |
30 | INTERNAL_ERROR | Merchant not configured correctly | Мерчант настроен неправильно |
40 | TRANSACTION_EXPIRED | Transaction finalized by timeout | Транзакция завершена по таймауту |
50 | PROCESSING_ERROR | No terminal configured to process this transaction | Ни один терминал не настроен для обработки этой транзакции. |
60 | INSUFFICIENT_FUNDS | Insufficient balane on card | Недостаточный баланс на карте |
70 | DECLINED_BY_ACQUIRING | Bank aqiring was decline this transaction | Банковский эквайринг отклонен по данной транзакции |
80 | DECLINED_BY_ISSUER | Transaction was declined by card issuer | Транзакция отклонена эмитентом карты |
90 | DECLINED_AS_FRAUD | Transaction was declined as fraud | Транзакция отклонена как мошенничество |
Следующая страница →
На этой странице