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

Після виклику метода оплати угоди платежі за товар та за доставку ініціюють оплату і здебільшого очікують підтвердження платником.

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

Приклад:

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

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

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

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

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

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

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

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

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

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

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

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

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