Versions Compared

Key

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

После вызова метода оплаты сделки платежи Після виклику метода оплати угоди платежі за товар и та за доставку инициируют оплату и зачастую могут ожидать подтверждения плательщиком.Для того чтобы узнать что платеж требует подтверждения вызываем метод получение данных по сделки и в ответе смотрим на объекты платежей data.productPayment и ініціюють оплату і здебільшого очікують підтвердження платником.

Щоб визначити, що платіж потребує підтвердження, викликаємо метод отримання даних по угоді і у відповіді  беремо до уваги об'єкти платежів data.productPayment і data.handlerPayment. Статус самого платежа платежу status остается залишається в "NEW", но але статус waitingFor должен быть в статусе має бути в "CONFIRMATION", это означает что этот платеж нужно подтверждать. В поле . Це означає, що цей платіж  необхідно підтвердити. В полі details.confirmation, будет храниться объект, который нужен для подтверждения платежа.Пример буде зберігатися об'єкт, який потрібен для підтвердження платежу.

Приклад:

Code Block
languagejs
...
"productPayment": {
    "id": 994,
    "amount": 10000,
    "commissionAmount": 600,
    "status": "NEW",
    "statusCode": "NEEDS_CONFIRMATION",
    "statusText": null,
    "type": "P2P",
    "waitingFor": "CONFIRMATION",
    "details": {
        "confirmation": {
            "type": "LOOKUP",
            "attemptsLeft": 3,
            "redirectUrl": "https://api.escrowbox.stage.uapay.ua/api/payments/994/confirmations"
        }
    },
    "payReceipt": "https://api.stage.uapay.ua/api/receipts/f8c2f0dd-454e-4264-8051-80a51fd4d167.pdf",
    "reverseReceipt": null,
    "finishReceipt": null
},
...

Существуют несколько видов подтверждения платежа, чтобы понять какой вид у данного платежа смотрим на Є кілька способів підтвердження платежу. Визначити, який спосіб у даного платежу, допоможе details.confirmation.type.

...

Підтвердження LOOKUP

Поле details.confirmation.type = "LOOKUP".

Пример объекта Приклад об'єкта details.confirmation:

Code Block
languagejs
{
    "type": "LOOKUP",
    "attemptsLeft": 3,
    "redirectUrl": "https://api.escrowbox.demo.uapay.ua/api/payments/994/confirmations"
}

Процедура подтверждения платежа заключаеться в том, что плательщику приходит смс с кодом подтверждения от банка-эмитента, который нужно передать в метод подтверждения платежа системы Escrow Box. Процесс передачи этого кода от плательщика до системы Escrow Box лежит на реализации клиента-интегратора. Как пример, это просто обычная форма с одним полем и кнопкой "Отправить" на клиентской части сервиса клиента-интегратора, которая вызовет метод сервиса клиента-интегратора, а он в свою очередь вызовет метод подтверждения платежа системы Escrow Box c параметром code, в этом случае details.confirmation.redirectUrl являеться URL-ом на который нужно отпрвить подтверждение. 

...

Процедура підтвердження платежу полягає в тому, що платник отримує смс з кодом підтвердження від банку-емітента, який потрібно передати в метод підтвердження платежу системи Escrow Box. Процес передачі цього коду від платника до системи Escrow Box залежить від реалізації клієнта-інтегратора. Як приклад, це звичайна форма з одним полем та кнопкою "Відправити" на клієнтській частині сервісу клієнта-інтегратора, яка викликає метод сервісу клієнта-інтегратора, а той в свою чергу, викликає метод пілтвердження платежу системи Escrow Box з параметром code, в цьому випадку details.confirmation.redirectUrl являється URL-ом, на який потрібно відправити підтвердження. 

Підтвердження 3DS

Поле details.confirmation.type = "3DS".

Пример объекта Приклад об'єкта details.confirmation:

Code Block
languagejs
{
  "type": "3DS",
  "url": "https://3ds.ukrsotsbank.com:443/way4acs/pa?id=W6yNkAC_RQUjjjRwIyPCsg",
  "form": {
    "PaReq": "eJxVUttuo0AMfc5foH4Ac0kgQzQZiZaHjVRatqXqY4WIldDdTMgMZJt+/dpAVtmRRtg+Z2yObV3uHUD2CnXvwOgcvK92EDTb9V2RvsDpQ0RzxecRV2qRqDsz00PYzGb6DM43R2tEyEOp2dVFpK2siaKlEnwpZMzjSM6VZhRFMAdX7yvboT3TVX263zyZSMZJLDSbXEIO4DaZ4eOR4wcZY5gItjqAKcF3wTVjUFb+sbG/As0GkFj1sbeduxjFF5pdHQJ699vsu65dMSbkEiXwUKzmeFhebNgL+PZoPRTuWGNLGrsLP32rGb3Cx+xGhC56sv1Y76vZmrx8+37O0u+nMl08Zz8jtP/k411rRgxibqsOjORC8UQuA8FXkVpxbNMQH3pzoN81cUi6J4fiLdVLJ5Cw28CguXcObH0xieIo+uoRBF8oC5CHA/tnk6AbEfrhxzSbusNepxV/3xT95fHs2sX58N7vT01ns+0bl680sYE05W6wuSIhFZNDqSkdFhjWhjo3bBha/23eX56EwQw="
  },
  "redirectUrl": "https://api.escrowbox.demo.uapay.ua/api/payments/564/confirmations"
}

Процедура подтверждения платежа заключаеться в том, что плательщику приходит смс с кодом подтверждения от банка-эмитента, который нужно ввести на странице подтвержденияПроцедура підтвердження платежу полягає в тому, що платник отримує смс з кодом підтвердження від банку-емітента, який необхідно ввести  на сторінці підтвердження (ACS) банка-эмитентаемвтента. Процес вызова этой страницы лежит на реализации клиента-интегратора. На клиентской части сервиса клиента-интегратора нужно реализовать форму с методом отправки POST запроса при submit на виклику цієї сторінки залежить від реалізації клієнта-інтегратора. На клієнтській частині сервісу клієнта-інтегратора потрібно реалізувати форму з методом відправки POST  запиту при submit на action details.confirmation.url c  з двома полями: "TermUrl" значение указать значенні вказати URL системысистеми-интегратора на который прийдет postback от банка с данными для подтверждения платежа) и інтегратора, на який прийде postback від банку з даними для підтвердження платежу) та "PaReq"значение указать значение из значенні вказати дані з details.confirmation.form.PaReq). После вызова данной формы, плательщика редиректит на страницу подтверждения платежа банка-эмитента, там он подтверждает платеж и после успешного подтверждения банк отправляет postback на URL, который был указан в форме. Есть ситуации, когда банк не показывает страницу подтверждения платежа, а сразу отправляет postback, смотрите ниже информацию по quasi-3DS. В ответ прийдет объект с параметром "PaRes" и от некоторых банков может быть параметр "MD", эти параметры нужно отправить в метод подтверждения платежа системы   Після виклику даної форми платника редіректить на сторінку підтвердження платежу банка-емітента, там він підтверджує платіж і після успішного підтвердження банк надсилає postback на URL, який був вказаний у формі. Про випадок, коли банк не відображає сторінку підтвердження платежу, а відразу надсилає postback, інформація наведена в розділі по quasi-3DS. У відповідь отримаємо об'єкт з параметром "PaRes" та від окремих банків може прийти параметр  "MD", ці параметри необхідно надіслати в метод підтвердження платежу системи Escrow Box на URL details.confirmation.redirectUrl.

Пример формыПриклад форми:


Code Block
languagexml
<html>

<body>
    <form action="https://acs.privatbank.ua/pPaReqMC.jsp" method="POST">
        <input name="TermUrl" value="https://api.escrowbox.stage.uapay.ua/api/payments/1072/confirmations"></input><br>
        <input name="PaReq" value="eJxVUsFuwjAMPfMXFR/QJC2lDQqR2DgMaR1o685TVSzoNkJJ2g34+tkpIBa1qu337NTPVsXWAszfoOosaJWDc+UGgno9Ha5mr3D4EEksucxiEWcjOdQD5cN6MFA/YF29N1qEPIwUu7qINKXRiRhnaZLGPEtTLtNEMYoimIOttqVp0R6osjo8LF50Eo3lWCh2cQnZgV3MNe9P1H+Q0YeJYMod6AJcG1wrBkXpnmvzFSjmQWJV+8609qQzPlLs6hDQ2W+9bdtmwpiIUmyBh2IS42H5asFewTV742Bl9xVKUptN+OkaxSgLk9ldE2rVke36+471WufF+3lZzJLlPD/m5w1H+zef+3eqGDGIuS5b0BEXmeBcBiKb4BPHivm412ZHv6sFH4ecoza9S0hDN85uMKH3Id93Zy2Y6qRlhujNIwiO2BogD4d2s6mpu0bU49NlPlWLesc84VKmEmdKQ/KxS6ka9cTxjHyt2ourGGVjPb8pJJZfKrT+LdsfSpO6aw=="></input><br>
        <button>Submit</button>
    </form>
</body>

</html>

Завершающий этап подтверждения

...

Фінальний етап підтвердження

Підтвердженим платіж буде вважатися у випадку, коли його статус зміниться з "NEW" на "PAID", а не когда вызоветься метод подтверждения платежа. В связи с этим, после вызова метода подтверждения платежа при любом подтверждении, нужно трекать состояния сделки и смотреть на состояние платежей. Есть еще одна разновидность подтверждения платежа коли буде викликано метод підтвердження платежу. У зв'язку з чим, після  виклику методу підтвердження платежу при буль-якому підтвердженні необхідно трекати стан угоди та звертати увагу на стан платежів.

Є ще один спосіб підтвердження платежів quasi-3DS, он не вынесен как отдельный тип подтверждения, так как включает в себя оба подтверждения. Сначала нужно будет подтвердить 3DS(страница банка-эмитента тут не показывается, сразу идет редирект, без подтверждения плательщика), а потом платеж становиться с подтверждением він не виокремлений як окремий, так як містить в собі  обидва підьвердження. Спочатку необхідно підтвердити 3DS (сторінка банка-емітента тут не відображається, відразу відбувається редірект, без підтвердження платником), а потім платіж стає з підтвердженням LOOKUP.