Методы для работы с 3DS
Методы для прохождения 3DS.
Для использования методов Отправить запрос в банк-эмитент для прохождения 3DS и 3DS Method не нужны токен и mTLS-сертификат.
Отправить запрос в банк-эмитент для прохождения 3DS
Если в ответе метода Подтвердить платеж возвращается статус 3DS_CHECKING —
отправьте запрос на ACS URL банка, выпустившего карту. acsUrl возвращается в ответе метода
Подтвердить платеж.
Для 3DS v2.1: компонент ACS использует пары сообщений CReq и CRes для выполнения проверки (Challenge). В ответ на полученное сообщение CReq-компонент ACS формирует сообщение CRes, которое запрашивает держателя карты ввести данные для аутентификации.
Запрос
Content-type— application/x-www-form-urlencoded.- URL —
acsUrlиз ответа метода Подтвердить платеж.
| Тип | Описание | |
|---|---|---|
| MD | String | Уникальный идентификатор транзакции в системе банка из ответа метода Получить версию 3DS. |
| PaReq | String | Результат аутентификации 3D Secure из ответа метода Получить версию 3DS. |
| TermUrl | String | Адрес перенаправления после аутентификации 3D Secure — URL обработчик на стороне мерчанта, принимающий результаты прохождения 3D Secure. |
Пример запроса
<body onload="document.form.submit()" >
<form name="form" action="{ACSUrl}" method="post" >
<input type="hidden" name="TermUrl" value="{TermUrl}" >
<input type="hidden" name="MD" value="{MD}" >
<input type="hidden" name="PaReq" value="{PaReq}" >
</form>
</body>
Ответ
Формат ответа — cres, полученный по NotificationUrl из запроса метода Подтвердить платеж. При успешном результате прохождения 3DS инициированный платеж подтверждается с помощью метода Подтвердить прохождение 3DS.
Content-type— application/json.
| Название параметра | Тип | Описание |
|---|---|---|
| MD | String | Уникальный идентификатор транзакции в системе банка из ответа метода Получить версию 3DS. |
| PaRes | String | Шифрованная строка, содержащая результаты 3D Secure аутентификации. |
| FallbackOnTdsV1 | String | Если нельзя пройти аутентификацию по 3DS v2.1, делается принудительный Fallback на 3DS v1.0 и параметр выставляется в true, иначе — не передается в ответе. |
Пример ответа
{
"cres": "FwlGfSwmRARfDXsgt1PBvbtYTIMY2l2SThPEeei6aFwlGfSwmRARfDXsgt1PBvbtYTIMY2l2SThPEeei6aGIdXfZ3psSfuKZt3O35yCVpfAbYs8AmIdIHQmJyskyNxYZyGIdXfZ3psSfuKZt3O35yCVpNkQwzuH68WlB9oiEnt6NdGaegzJ6ljDlKAl7tvQNCPw2FjDWbhHlxj34ut0hhivaJBNHSmvumv7sndTpA7AzxJYNUhkp67fG411fAbYs8AmIdIHQmJyskyNxYZy"
}
Пройти этап 3DS Method
Метод используется для сбора информации о девайсе ACS-ом. Обязателен, если для 3DSv2.1 в ответе метода
Проверить версию 3DS вернулся параметр ThreeDSMethodURL.
Условия выполнения:
- в скрытом iframe на стороне браузера;
- с таймаутом ожидания ответа на запрос — 10 секунд.
Запрос
Content-type— application/x-www-form-urlencoded.- URL —
ThreeDSMethodURLиз ответа метода Проверить версию 3DS.
Параметры запроса:
threeDSMethodData— JSON, закодированный в форматBase64, с параметрами:threeDSMethodNotificationURL— обратный адрес, на который будет отправлен запрос после прохождения threeDSMethod;threeDSServerTransID— идентификатор транзакции из ответа метода.
Пример запроса
<body onload="document.form.submit()">
<form name="form" action="{ThreeDSMethodURL}" method="post">
<input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjU2ZTcxMmE1LTE5MGEtNDU4OC05MWJjLWUwODYyNmU3N2M0NCIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3Jlc3QtYXBpLXRlc3QudGlua29mZi5ydS92Mi9Db21wbGV0ZTNEU01ldGhvZHYyIn0">
</form>
</body>
Ответ
Content-type — application/json.
Параметр ответа — threeDSServerTransID: уникальный идентификатор транзакции, который генерируется 3DS Server.
Пример ответа
{
"threeDSServerTransID":"string"
}