Верифікація платежу
Важливо!
У разі отримання на запит
Оплата кошика інструкції security_rate = 3D, необхідно пройти верифікацію на стороні банку, отримати від банку дані верифікації та виконати запит нижче
Процедура проходження верифікації
- Перед оплатою кошика необхідно зберегти дані для 3дс 2.0
- Якщо на оплату кошика прийшов статус 1 та непусте поле security_data.redirect_url, виконуємо редирект користувача на security_data.redirect_url
- На notification_url очікуємо від банку запит методом POST із параметром threedsData.
- Виконуємо верифікацію.
Метод
Array verificationPayCart( array $request );
Запит
| Поле |
Тип |
Опис |
Статус |
cart_guid
|
String |
Ідентифікатор кошика |
Обов'язковий |
verification
|
Array |
Інформація від банку містить ключ: threeds_data
|
Обов'язковий |
Відповідь
| Поля |
Тип |
Опис |
Статус |
status
|
String |
Статус кошика:
0 - Створений кошик, оплата не подавалася
1 - Було створено платіж
4 - Неуспіх
5 - Успіх
9 - Скасування (платіж скасовано)
10 - Очікування додаткових даних для верифікації
Статуси 4, 5 та 9 є фінальними
|
|
pid_id
|
String |
id платежу |
|
cart_guid
|
String |
Ідентифікатор кошика |
|
invoice
|
String |
Вартість послуги в Копійках |
|
amount
|
String |
Вартість послуги з комісією послуги у Копійках |
|
fee
|
Array |
Комісія послуги у Копійках у розрізі за типами: зовнішня, внутрішня та агентська компенсація |
|
cartItems
|
Array |
Перелік послуг у кошику |
|
Важливо!
При отриманні відповіді від API Shina відмінної від зазначеної вище (в т.ч. у разі помилки сервера), необхідно
перезапитувати статус кошика до здобуття фінального статусу.
У разі отримання статусу 10 необхідно запитати поля AML, заповнити їх та повторно надіслати запит на оплату
Метод 1: Виклик методу PHP
Запит
$response = $api->verificationPayCart([
'cart_guid' => 'E80F563B-78CB-48CD-84E2-C0EE7E53711F',
'verification' => [
'threeds_data' => 'eJxVUttugkAQ/RXDY5OyF1hczLiG1jb1wUpajP',
]
]);
Відповідь
Array
(
[errors] => Array
(
[302] => Корзина cart_guid =E80F563B-78CB-48CD-84E2-C0EE7E53711F не найдена
)
)
Метод 2: Використання запиту на URL
https://www.ipay.ua/shina/cart/pay/verification
Запит
{
"request":{
"app_id":"auto_test",
"sig":"03221e365316dc1f8b3482d194c7d1cf",
"time":"2016-06-14 16:56:46",
"cart_guid":"E80F563B-78CB-48CD-84E2-C0EE7E53711F",
"verification":{
"threeds_data":"eJxVUttugkAQ/RXDY5OyF1hczLiG1jb1wUpajP"
}
}
}
Відповідь
{
"response":{
"status":"5",
"pid_id":"12590249",
"cart_guid":"3360B667-4586-4D6D-AA1E-6B958B34F6E6",
"invoice":100,
"amount":100,
"cartItems":[
{
"bill_id":541,
"invoice":100,
"amount":100,
"desc":"Phone number: 0685980460; Amount: 1,00 грн.",
"values":{
"step_1":{
"acc":"0685980460",
"invoice":1
}
}
}
]
}
}