Верифікація карти клієнта - забезпечує прив'язку карти, отримання токена карти для подальших платежів без повторного введення клієнтом карткових даних. Також, дозволяє перевірити чи активна картка для розрахунків і здійснити перевірку того, що ймовірно банківська карта належить власнику карти.
Запит Verify використовується для виклику сторінки WayForPay і проведення верифікації карти клієнта і отримання токена карти в разі успішної верифікації.
Доступні варіанти верифікації:
-
Верифікація картки з блокуванням суми на картці клієнта і введенням заблокованої суми
-
Верифікація картки без списання грошей, з підтвердженням введення Lookup коду.
-
Верифікація картки без списання грошей і без підтвердження з боку клієнта.
Верифікація картки з блокуванням суми на картці клієнта і введенням заблокованої суми
Дозволяє підтвердити, що клієнт має доступ до картки в разі введення клієнтом правильної суми, яка була заблокована на картці (це дозволяє припускати, що карту додає власник картки). У разі відсутності грошей на картці, верифікація буде неуспішною.
Як працює?
-
На першому Кроці клієнт вводить реквізити картки, система блокує на картці клієнта випадкову суму від 1 до 5 грн.
-
На другому Кроці клієнт підтверджує - вводить заблоковану суму на своїй картці, яку може дізнатися в своєму банкінгу або з смс від банку про блокування грошей на карті.
-
У разі успішного підтвердження заблокованої суми система повертає токен картки клієнта.
Результатом обробки запиту є блокування коштів на картці клієнта і автоматичне розблокування коштів через 15 хвилин.
Для використання даного виду верифікації необхідно в запиті Verify передати:
- paymentSystem = card
- verifyType = confirm
Перейти до загальних параметрів запиту та відповіді
Верифікація картки з блокуванням суми, і підтвердженням введення 3d Secure коду (для карток які підтримують 3D Secure)
Дозволяє отримати токен карти шляхом блокування суми на карті і запитом введення 3D Secure коду, відправленого банком-емітентом карти. Якщо карта не підтримує 3D Secure перевірку, сума буде заблокована без підтвердження.
У разі відсутності грошей на карті, верифікація буде неуспішною.
Як працює?
-
На першому Кроці клієнт вводить реквізити карти, система блокує на карті клієнта випадкову суму від 1 до 5 грн.
-
Для карт з 3d secure Другий Крок - клієнт підтверджує - вводить 3D Secure код, який може дізнатися в своєму банкінгу або з смс або підтвердити блокування суми в додатку банку. У разі успішного підтвердження заблокованої суми система повертає токен картки клієнта.
-
Для карток які не підтримують 3D Secure в разі успішного підтвердження заблокованої суми система повертає токен картки клієнта.
Результатом обробки запиту є блокування коштів на картці клієнта і автоматичне розблокування коштів через 15 хвилин.
Для використання даного виду верифікації необхідно в запиті Verify передати:
- paymentSystem = card
- verifyType = simple
Перейти до загальних параметрів запиту та відповіді
Верифікація карти без списання грошей з підтвердженням введення Lookup коду
Верифікація картки відбувається без списання грошей, але з підтвердженням введення lookup коду, який надсилає банк в смс або в push повідомленні в додаток банкінгу. Дозволяє верифікувати карту без наявності на ній коштів.
Як працює?
-
На першому Кроці клієнт вводить реквізити картки, система відправляє запит в банк клієнта на відправку йому lookup коду.
-
На другому Кроці клієнт підтверджує - вводить код, який банк йому відправив в смс повідомлення або в push повідомленні в застосунок банкінгу.
-
У разі введення правильного lookup коду система повертає токен картки клієнта.
Для використання даного виду верифікації необхідно в запиті Verify передати:
- paymentSystem = lookupCard
- verifyType = confirm
Перейти до загальних параметрів запиту та відповіді
Верифікація карти без списання грошей і без підтвердження з боку клієнта
Дозволяє верифікувати карту без наявності на ній коштів. Клієнту достатньо буде ввести повні реквізити картки, система відправить запит в банк на перевірку валідності карти.
Як працює?
-
Клієнт вводить реквізити картки.
-
Система відправляє запит в банк і в разі валідності картки система повертає токен картки клієнта.
Для використання даного виду верифікації необхідно в запиті Verify передати:
- paymentSystem = lookupCard
- verifyType = simple
Перейти до загальних параметрів запиту та відповіді
Параметри запиту
Запит c необхідними параметрами формується на стороні продавця та передається методом POST по протоколу HTTP на URL https://secure.wayforpay.com/verify
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації парамаетров merchantAccount, merchantDomainName, orderReference, amount, currency розділених ";" (крапка з комою) в кодуванні UTF-8
ПАРАМЕТР | ОПИС | ОБОВ'ЯЗКОВЕ |
---|---|---|
merchantAccount | Ідентифікатор продавця. Присвоюється Вам з боку WayForPay | так |
merchantAuthType | Тип авторизації. Може приймати одне з наступних значень: - simpleSignature (за замовчуванням) | ні |
merchantDomainName | Доменне ім'я веб-сайту торговця | так |
merchantSignature | Підпис запиту | так |
apiVersion | Версія протокола.Значення за замовчуванням: 1 | так |
returnUrl | URL, на який система повинна перенаправляти клієнта з результатом платежу. * У разі відсутності параметра переадресація відбувається на сторінку результату оплати checkout psp | так |
serviceUrl | URL, на який система повинна відправляти відповідь з результатом платежу безпосередньо Мерчанту | ні |
orderReference | Унікальний номер замовлення в системі торговця | так |
amount | Сума verify = 0 | так |
currency | Валюта verify: UAH | так |
paymentSystem | значення = lookupCard | так |
clientEmail | Email клієнта | ні |
clientPhone | Номер телефону клієнта | ні |
clientCountry | Країна клієнта | ні |
clientAddress | Адреса клієнта | ні |
clientCity | Місто клієнта | ні |
clientState | Штат / Область клієнта | ні |
clientZipCode | Поштовий індекс клієнта | ні |
Параметри відповіді
ПАРАМЕТР | ОПИС | ПРИКЛАД |
---|---|---|
merchantAccount | Ідентифікатор продавця | test_merchant |
orderReference | Унікальний номер замовлення в системі торговця | 1212dd1 |
merchantSignature | hash_hmac | |
amount | Сума замовлення | 100 |
currency | Валюта замовлення | UAH |
| email платника | |
phone | Номер телефону платника | +38063-333-33-33 |
createdDate | Дата створення запиту в psp (UTC) | 123456789 |
processingDate | Дата процесування транзакції (UTC) | 12345678 |
cardPan | Маскований номер карти (44****4444) | 42****4242 |
cardType | Тип картки: Visa/MasterCard | Visa |
issuerBankCountry | Країна карти | Ukraine |
issuerBankName | Ім'я Банку карти | PrivatBank |
recToken | Токен карти для рекаррінгових списань | 121213321-3213213-3213213-321-3 |
transactionStatus | статус транзакції | Approved |
reason | Причина відмови | Ok |
reasonCode | код відмови | 1100 |
fee | Комісія psp | 0.00 |
paymentSystem | Платіжна система, через котру було створено платіж. | card |
Аутентифікація запитів
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів merchantAccount, merchantDomainName, orderReference, amount, currency розділених ";" (крапка з комою) в кодуванні UTF-8
Приклад HTTP POST запиту:
{
"merchantAccount": "test_merch_n1",
"merchantDomainName": "merchant.com.ua",
"merchantAuthType": "SimpleSignature",
"merchantSignature": "9a9b6f197eea8319ee87c4b7079c4c28",
"orderReference": "VRF-PP-1445852171",
"amount": "0",
"currency": "UAH",
"clientEmail": "some@mail.com",
"clientPhone": "+38(066)0000000",
"returnUrl": "http://local.com/service",
"serviceUrl": "http://local.com/service",
"language": "RU"
}
Повідомлення мерчанта про статус транзакції
Для авторизованих і перевірених замовлень (а також при зміні статусу замовлення) серевер WayForPay направляє на serviceUrl запит (HTTP_POST) включає в себе дані замовлення.
Дана інформація доповнюється контрольним підписом HMAC_MD5.
У разі, якщо WayForPay НЕ отримає коректну відповідь від сервера торговця, то система буде направляти запити на протязі 4-х діб або до отримання правильної відповіді.
{
"merchantAccount":"test_merchan_n1",
"orderReference":"DH783023",
"merchantSignature":"",
"amount":3.36,
"currency":"UAH",
"authCode":"541963",
"email":"client@mail.ua",
"phone":"380501234567",
"createdDate":12345678,
"processingDate":12345678,
"cardPan":"41****8217",
"cardType":"visa",
"issuerBankCountry":"980",
"issuerBankName":"Privatbank",
"recToken":"",
"transactionStatus":"WaitingAmountConfirm",
"reason":5105,
"reasonCode":"",
"fee":0,
"paymentSystem":"card"
}
Система WayForPay очікує отримати від сервера торговця таку відповідь:
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів orderReference, status, time розділених ";" (крапка з комою) в кодуванні UTF-8
{
"orderReference":"DH783023",
"status":"accept",
"time":1415379863,
"signature":""
}