/
Підтвердження платежу 3DS

UAPAY - національний платіжний сервіс

Підтвердження платежу 3DS

Після того, як у відповідь на метод POST/api/payments/p2p/show було отримано data.status=NEEDS_CONFIRMATION та data.confirmation.type=3DS, необхідно перенаправити користувача на ACS-сторінку банка емітента для виконання підтвердження платежу.


Для цього потрібно виконати запит методом POST на URL data.confirmation.url. Якщо є параметри в об'єкті data.confirmation.form - їх потрібно передати в запиті (всі вони не є обов'язковими). Обов'язково потрібно передати параметр TermUrl, його потрібно сформувати за принципом URL + query string параметри: id, redirect, key (не є обов'язковим):

${redirectUrl}?id=${redirectParamsId}&key=${key}&redirect=${redirect}

де:

  • ${redirectUrl} - значення поля data.redirect.url з відповіді на запит отримання статусу платежу

  • ${redirectParamsId} - значення поля data.redirect.params.id з відповіді на запит отримання статусу платежу

  • ${key} - значення поля data.key з відповіді на запит створення платежу

  • ${redirect} - URL, на який буде виконано перенаправлення після завершення підтвердження на ACS-сторінці (зазвичай URL сторінки мерчанта)


Приклад відповіді на метод POST /api/payments/p2p/show:

{ "status":1, "data":{ "id":"6bb07565-6602-4482-b695-bbf410506a7d", "status":"NEEDS_CONFIRMATION", "number":"16851", "amount":100, "externalId":"123", "recipient":{ "phone":"380961234567", "email":null }, "confirmation":{ "type":"3DS", "url":"https://acs.privatbank.ua/pPaReqMC.jsp", "form":{ "PaReq":"eJxVUttOwzAMfd5fVHxAc1nTtVOINNgDk+g0wXjYE6o6i3WwrEtaYHw9dtqhESmqfY5j99jW650DmD9D1TkwugDvyzeI6u3tzWr2BKdXoWSaJmMpJ6lKbsxIB9iMRvoTnK+P1oiYx1Kzi4tMU1qjxulYJTLlUqlMcaUZoUgW4KpdaVu0R7qsTneLpcEaeSo0G1xiDuAWc8P7I/sPRvQwBdjyAGYNvo0uGaN16R9r+x5pFkiKqo6dbd3ZZDzR7OIQ0bkPs2vbZsqYkBOUwGMxHeNhxWrBnsA3R+th5Y4VtqS2b/HeN5rRK3zMrkToVUe27+t911tTrF/Oy/2GFz+L8/JnI5bz2VfR31vNKIIit2ULRnKRcSWySCRYfJpMNAt46M2BftekMekeHMIbqjcbSOKugaC5cw5sdTZ5xlH0xSMKvlEWYBwO7M8mQVci9P3DMJuqxV7LTOYqyZXkExpQwIZUNfYSR5OHXHVorGb0GvOFLaFGhYVC69+i/QK+brnK" } }, "redirect":{ "url":"https://api.demo.uapay.ua:443/api/payments/p2p/confirm", "params":{ "id":"6bb07565-6602-4482-b695-bbf410506a7d" } } } }

 


Щоб зробити POST-запит до банку емітенту, потрібно створити і викликати HTML-форму.

Приклад з використанням JavaScript:

<!DOCTYPE html> <html> <head> <title>Example call ACS</title> </head> <body> <script type="text/javascript"> var form = document.createElement('form'); form.setAttribute('method', 'POST'); form.setAttribute('action', data.confirmation.url); var paReq = document.createElement('input'); paReq.setAttribute('type', 'hidden'); paReq.setAttribute('name', 'PaReq'); paReq.setAttribute('value', data.confirmation.form.PaReq); form.appendChild(paReq); var md = document.createElement('input'); md.setAttribute('type', 'hidden'); md.setAttribute('name', 'MD'); md.setAttribute('value', data.confirmation.form.MD); form.appendChild(md); var termUrl = document.createElement('input'); termUrl.setAttribute('type', 'hidden'); termUrl.setAttribute('name', 'TermUrl'); termUrl.setAttribute('value', termUrl); form.appendChild(termUrl); document.body.appendChild(form); form.submit(); </script> </body> </html>


Після повернення користувача на сторінку необхідно продовжувати відправляти запит show, до тих пір, поки не буде отримано фінальний статус платежу.

Related content

Підтвердження платежу LOOKUP (Confirm payment)
Підтвердження платежу LOOKUP (Confirm payment)
More like this
Створення картки з механізмом авторизації
Створення картки з механізмом авторизації
Read with this
Підтвердження платежу 3DS (3-D Secure)
Підтвердження платежу 3DS (3-D Secure)
More like this
Створення картки у фреймі
Створення картки у фреймі
Read with this
Отримання даних по операціям платежу P2P (Payments show)
Отримання даних по операціям платежу P2P (Payments show)
More like this

UAPAY - національний платіжний сервіс
pay@uapay.ua