Ввод карточных данных на сайте мерчанта
Если ресурс мерчанта сертифицирован PCI DSS то допускается процесс оплаты при котором данные банковской карты запрашиваются у покупателя на сайте мерчанта и процесс оплаты запускается непосредственно с сервера мерчанта.
При такой форме проведения платежа платеж создается в точности так же как при обычном варианте с вводом данных карты на стороне ПС Eight.
При создании платежа (метод /prepare_payment) важно установить поле return_url в правильное значение - это должен быть адрес страницы на вашем ресурсе, включающий в query string идентификатор платежа, по которому сайт магазина идентифицирует платеж и отобразит покупателю статус платежа.
Инициализация процесса оплаты по созданному платежу
Формат запроса:
URL: https://secure.eight.uz/pay/{UUID}
Метод: POST
Content-type: application/json
Тело запроса:
{
"pan": 5011054488597827,
"exp": "2612",
"cardHolderName": "John Johnson",
"cvc2": "111",
"method": "bank_card",
"email": "user@gmail.com"
}
Валюта возврата совпадает с валютой платежа.
Описание полей запроса:
Поле | Обязательное | Описание
:--------------- | :----------: | ---------------------------------------:
UUID | Да | Уникальный идентификатор транзакции в ПС Eight полученный на /prepare_payment
pan | Да | Номер карты.
exp | Да | Дата истечения срока действия карты в формате YYMM.
cardHolderName | Да | Имя держателя карты
cvc2 | Да | Трехзначный код безопасности с обратной стороны карты.
method | Да | Метод оплаты (платежная система bank_card, uzcard, mir_card, humo)
email | Нет | Email для отправки покупателю чека.
В ответ на запрос мерчанта ПС Eight отвечает следующим JSON в теле ответа:
{
"error": 0,
"errMessage": "",
"data": {
"id": 29,
"uuid": "b356009c-1423-4920-b000-a38ba93d3dd1",
"processorKey": null,
"merchantId": 1,
"merchantTransId": "d53e726b-9946-44bf-aa2b-5847b65d1927",
"initialSum": 500.00,
"totalSum": 500.00,
"splittedSum": 500.00,
"currency": "RUB",
"selectedMethod": "mir_card",
"createTime": 1701948463624,
"expireTime": null,
"peyedTime": 1701948568888,
"expiredHoldTime": null,
"merCreateTime": 1701948463000,
"description": "Test",
"autoCapture": false,
"withoutSite": false,
"isTest": false,
"refundLocked": false,
"returnUrl": "https://merchant-site.uz/user-s-home-page",
"redirectUrl": null,
"details": {
"transType": "SMS",
"commission": "4.00"
},
"hold": null,
"payMethods": [
{
"only": null,
"method": "sbp"
},
{
"only": null,
"method": "bank_card"
}
],
"status": "succeeded",
"basket": null,
"user": {
"email": "krutoi99112@gmail.com",
"phone": null,
"userId": null
},
"airline": null,
"language": "ru",
"tariffId": 1,
"fee": 20.00,
"transferSum": 480.00,
"refundedSum": 0,
"provCode": "mir",
"optionalData": null,
"forConsideration": false,
"riskLevel": 1,
"auditedAt": null,
"auditorId": null,
"processingReference": "5681924",
"tag": null,
"tspId": null,
"redirectTimeout": null,
"merchantStatus": "capture"
}
}
Коды ошибок :
Код | Описание
:--- | :----------------------------------------------:
0 | Ошибки нет
1 | Платёж не найден
2 | Слишком частый запрос: с одинаковым uuid платежа чаще 1 раза в сек.
3 | Платеж просрочен (вышло время жизни ссылки на оплату)
4 | Статус платежа не позволяет проводить оплату (уже оплачен/отменен или уже в процессе оплаты)
5 | Возможность оплаты с передачей карточных данных не активирована
6 | Неуказаны или неверно указаны обязательные поля
7 | Недопустимая валюта платежа
8 | В настройках мерчанта не указаны данные используемого ЕПОС-терминала
12 | BIN карты не соответствует диапазону номеров выбранной платежной системы (method)
13 | Платеж заблокирвоан из-за подозрения на фрод
14 | В настройках мерчанта не уопределен маршрут оплаты для выбранной платежной системы
15 | Неверну указан expireDate или карта просрочена
16 | Неверный PAN
17 | Ошибка верификации OTP
500 | Внутренняя ошибка сервера (ошибка настроек или логики на стороне сервера)