Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Для підтвердження платежу, необхідно відправити дані методом POST на URL (процесингу банку), який був отриманий у відповідь на запит show (блок confirmation).

Зробити це можна сформувавши HTML-форму, яку потім передати на сторінку процесингу банку. Форма повинна містити сформований URL для переадресації користувача на сторінку агента, на якій буде здійснюватися подальша обробка.

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

Форма с использованием JavaScript
xml
Code Block
language
Note

Після того, як у відповідь на метод 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 (не є обов'язковим):

Info

${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:

Code Block
{ 
   "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"
         }
      }
   }
}

Info

Приклад сформованого TermUrl:
https://api.uapay.ua/api/payments/p2p/confirm?id=6bb07565-6602-4482-b695-bbf410506a7d&key=7952LjXTpgh9JQhVLAwLaPhbgbEpjNzGuRcTkSqgpD45.jhc065tt09509909243&redirect=http://beta.uapay.ua/pending/e1d795e1-e3ef-4ef6-981d-92f094eaa351


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

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

Code Block
languagehtml
<!DOCTYPE html>
<html>

<head>
    <title>ASC<title>Example Testcall page<ACS</title>
</head>

<body>
    <script type="text/javascript">
"use strict";    var form = document.createElement('form');
    form.setAttribute('method', 'postPOST');
    form.setAttribute('action', 'data.confirmation:.url');

    var termUrlpaReq = document.createElement('input');
    termUrlpaReq.setAttribute('type', 'hiden ');
termUrl    paReq.setAttribute('name', 'TermUrlPaReq');
termUrl    paReq.setAttribute('value', '
redirect: url ? id = redirect : params: ID & key = key & redirect = agent_page_return / ID'); 
var paReq data.confirmation.form.PaReq);
    form.appendChild(paReq);

    var md = document.createElement('input');
    md.setAttribute('type', 'hiden ');
    md.setAttribute('name', 'MD');
    md.setAttribute('value', data.confirmation.form.MD);
    form.appendChild(md);

    var termUrl = document.createElement('
input ');
paReq    termUrl.setAttribute('
type ', '
hiden ');
 paReq   termUrl.setAttribute('name', 'PaReqTermUrl');
    paReqtermUrl.setAttribute('value', 'confirmation:form:PaReq'termUrl);
    form.appendChild(termUrl);
form.appendChild(paReq);
    form.submit();
    </script>
    </body>

</html>

Пример redirect URL
Code Block
languagexml
https://api.uapay.ua/api/payments/p2p/confirm?id=6bb07565-6602-4482-b695-bbf410506a7d&key=7952LjXTpgh9JQhVLAwLaPhbgbEpjNzGuRcTkSqgpD45.jhc065tt09509909243&redirect=http://beta.uapay.ua/pending/e1d795e1-e3ef-4ef6-981d-92f094eaa351


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