3D-Secure — проверка владельца карты банком-эмитентом. Для подтверждения банк может запросить одноразовый код или действие в банковском приложении.
Если API вернул status: "redirect", выполните переход в браузере плательщика. Поле url содержит адрес страницы, а method определяет способ перехода:
-
GET— откройтеurlв браузере. Еслиform_dataсодержит дополнительные поля, добавьте их в параметры URL, сохранив уже имеющиеся параметры. -
POST— создайте HTML-форму сaction, равнымurl, иmethod="post". Каждую пару изform_dataдобавьте как скрытое поле формы и отправьте форму. Это можно сделать автоматически черезform.submit().
Используйте URL целиком и передавайте имена и значения параметров form_data из ответа, сохраняя регистр. Набор полей зависит от способа оплаты; при {} или null дополнительных полей нет.
Пример POST-перехода на страницу подтверждения:
{
"status": "redirect",
"url": "https://acs.example/challenge",
"method": "POST",
"form_data": {
"termurl": "https://merchant.example/termurl",
"pareq": "pareq_data",
"MD": "md_data"
},
"id": "019c6c4f-9a9c-e583-18f4-0e22eec8fc82"
}В этом примере браузер отправляет форму на https://acs.example/challenge с полями termurl, pareq и MD. В интеграции используйте значения из ответа API.
Переход может вести на платёжную страницу, подтверждение 3D-Secure или страницу возврата мерчанта. Итоговый статус платежа проверяйте через /status или webhook.
Начиная с 3D-Secure версии 2.0 необходимо передавать данные пользователя в запрос следующий набор параметров (см. /init):
| Параметр | Описание | Пример |
|---|---|---|
| device_channel | Канал аутентификации | BRW |
| ip_address | IP адрес браузера | 93.184.216.34 |
| device_browser_accept_header | Принимаемый контент | text/html |
| device_browser_java_enabled | Признак работы с Java | false |
| device_browser_language | Язык браузера | RU |
| device_browser_color_depth | Глубина цвета браузера | 32 |
| device_browser_screen_height | Высота экрана браузера | 800 |
| device_browser_screen_width | Ширина экрана браузера | 480 |
| device_browser_tz | Часовой пояс браузера в минутах от UTC | 60, 120, -180 |
| device_browser_user_agent | Пользовательский агент браузера | Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Если их не передавать, то большинство банков-эмитентов будут отклонять платеж.