Верификация карты клиента - обеспечивает привязку карты, получения токена карты для дальнейших платежей без повторного ввода клиентом карточных данных. Также, позволяет проверить активна ли карта для расчетов и осуществить проверку того, что банковская карта принадлежит вероятно владельцу карты.
Запрос 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 кода, который присылает банк в смс или в пуш уведомлении в приложение банкинга. Позволяет верифицировать карту без наличия на ней средств.
Как работает?
-
На первом Шаге клиент вводит реквизиты карты, система отправляет запрос в банк клиента на отправку ему lookup кода
-
На втором Шаге клиент подтверждает - вводит код, который банк ему отправил в смс/пуш уведомлении или полученный из интернет банкинга.
-
В случае ввода правильного lookup кода система возвращает токен карты клиента.
Для использования данного вида верификации необходимо в запросе Verify передать:
- paymentSystem = lookupCard
- verifyType = confirm
Перейти к общим параметрам запроса и ответа
Верификация карты без списания денег и без подтверждения со стороны клиента
Позволяет верифицировать карту без наличия на ней средств. Клиенту достаточно будет ввести полные реквизиты карты, система отправит запрос в банк на проверку валидности карты.
Как работает?
-
Клиент вводит реквизиты карты.
-
Система отправляет запрос в банк и в случае валидности карты система возвращает токен карты клиента.
Для использования данного вида верификации необходимо в запросе Verify передать:
- paymentSystem = lookupCard
- verifyType = simple
Перейти к общим параметрам запроса и ответа
Верификация карты без списания денег на карте (для карт поддерживающих 3D Secure)
Позволяет верифицировать карту без блокировки на ней средств, но для карт с 3D Secure - путем запросом ввода 3D Secure кода, отправленного банком-эмитентом карты.
Если карта не поддерживает 3D Secure проверку, верификация карты будет без блокировки на карте средств.
Как работает?
-
На первом Шаге клиент вводит реквизиты карты
-
Для карт с 3d secure Второй Шаг - клиент подтверждает - вводит 3D Secure код, который может узнать в своем банкинге или из смс/push. В случае успешного подтверждения 3d secure система возвращает токен карты клиента.
-
Для карт не поддерживающих 3d secure система отправляет запрос в банк и в случае валидности карты система возвращает токен карты клиента.
Для использования данного вида верификации необходимо в запросе Verify передать:
- paymentSystem = card
- verifyType = empty
Общие параметры запроса и ответа находятся ниже.
Параметры запроса
Запрос 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":""
}