Перейти к содержанию

payments/cards/post3ds - Обработка 3-D Secure

  • HTTP-метод: POST
  • URL: /payments/cards/post3ds
  • Форма взаимодействия: Сервер-сервер
  • Формат тела запроса: application/json
  • Аутентификация: HTTP Basic Auth (PublicId / ApiSecret)
  • Назначение: завершение оплаты после прохождения плательщиком 3-D Secure аутентификации.

Флоу

Если payments/cards/charge или payments/cards/auth вернул Model.AcsUrl, нужно отправить плательщика на этот адрес методом POST, передав в теле формы:

  • MD — значение Model.TransactionId из ответа;
  • PaReq — значение Model.PaReq из ответа;
  • TermUrl — адрес на вашем сайте для возврата плательщика после аутентификации.
1
2
3
4
5
6
7
8
<form name="downloadForm" action="{AcsUrl}" method="POST">
  <input type="hidden" name="PaReq" value="{PaReq}">
  <input type="hidden" name="MD" value="{TransactionId}">
  <input type="hidden" name="TermUrl" value="https://example.com/post3ds?order=1234567">
</form>
<script>
  window.onload = function () { downloadForm.submit(); };
</script>

После аутентификации плательщик будет возвращён на TermUrl методом POST с параметрами MD и PaRes. Их нужно передать в payments/cards/post3ds, чтобы завершить оплату.

URL

1
https://cloud.wallet.kvell.group/payments/cards/post3ds
1
/payments/cards/post3ds

Структура запроса

Поле Тип Обяз. Описание
TransactionId int Значение параметра MD, полученного от ACS.
PaRes str Значение одноимённого параметра, полученного от ACS.

Структура ответа

  • Если требуется ещё один шаг 3DS — Model содержит новый AcsUrl/PaReq (та же форма, что у payments/cards/charge).
  • В остальных случаях Model содержит полную Модель транзакции: завершённая или отклонённая транзакция.

Пример запроса

1
2
3
4
{
  "TransactionId": 891463508,
  "PaRes": "eJxVUdtugkAQ/RXDe9mLgo0Z1nhpU9PQasWmPhLYAKks..."
}

Пример ответов

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "Model": {
    "TransactionId": 891510444,
    "Amount": 10,
    "Status": "Completed",
    "StatusCode": 3,
    "ReasonCode": 0,
    "CardHolderMessage": "Оплата успешно проведена",
    "CardFirstSix": "411111",
    "CardLastFour": "1111",
    "CardType": "Visa",
    "AuthCode": "A1B2C3"
  },
  "Success": true,
  "Message": null
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "Model": {
    "TransactionId": 891583633,
    "Amount": 10,
    "Status": "Declined",
    "StatusCode": 5,
    "ReasonCode": 5051,
    "CardHolderMessage": "Недостаточно средств на карте"
  },
  "Success": false,
  "Message": null
}

Примечания

  • Регистр названий полей формы (MD, PaReq, TermUrl) имеет значение.
  • Список кодов ошибок отклонённых транзакций — в разделе Коды ошибок.