Параметры запроса
Запрос c необходимыми параметрами формируется на стороне торговца и передается методом POST по протоколу HTTP на URLhttps://api.wayforpay.com/api
В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.
Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchantAccount, orderReference, amount, currency, cardBeneficiary разделенных “;” (точка с запятой) в кодировке UTF-8
Параметр | Описание | Обязательное |
transactionType | Тип запроса, принимает значение P2P_TRANSFER | да |
merchantAccount | Уникальный идентификатор продавца. | да |
merchantAuthType | Тип авторизации. Может принимать одно из следующих значений: - SimpleSignature (по умолчанию) | да |
merchantTransactionSecureType | Тип безопасности для прохождение транзакции. - AUTO | нет |
merchantDomainName | Доменное имя веб-сайта торговца | да |
orderReference | Уникальный номер перевода в системе торговца | да |
orderDate | Дата перевода | да |
amount | Сумма перевода | да |
fee | Сумма комиссии | нет |
currency | Валюта перевода: UAH | да |
card | Номер карты отправителя - 16 цифр | нет |
expMonth | Месяц истечения срока действия карты - MM | нет |
expYear | Год истечения срока действия карты - YYYY | нет |
cardCvv | Секретный код карты CVV/CVV2 | нет |
cardHolder | имя владельца карты, как указано на карте | нет |
recToken | Токен карты — для повторного списания без участия клиента (без передачи реквизитов карты) | нет |
clientFirstName | Имя отправителя | нет |
clientLastName | Фамилия отправителя | нет |
clientAddress | Адрес отправителя | нет |
clientCity | Город отправителя | нет |
clientState | Штат/Область отправителя | нет |
clientZipCode | Почтовый индекс отправителя | нет |
clientCountry | Страна отправителя | нет |
clientEmail | Email отправителя | нет |
clientPhone | Номер телефона отправителя | нет |
clientIpAddress | ip-адрес, с которого заходил клиент на страницу мерчанта для совершения покупки | да |
cardBeneficiary | Номер карты получателя | да |
deliveryFirstName | Имя получателя | нет |
deliveryLastName | Фамилия получателя | нет |
deliveryEmail | Email получателя | нет |
deliveryPhone | Номер телефона получателя | нет |
merchantSignature | Подпись запроса | да |
apiVersion | Версия протокола. Значение по-умолчанию: 1 | да |
Примечание: Поля(card + expMonth + expYear + cardCvv + cardHolder) или recTokenдолжны быть обязательным. |
---|
Верификация карты 3ds verify
Промежуточный ответ для аутентификации клиента
Параметр | Описание | Пример |
merchantAccount | Идентификатор продавца | test_merch_n1_p2p |
orderReference | Уникальный номер заказа в системе торговца | P2P-1430206527 |
amount | Сумма заказа | 0.31 |
currency | Валюта заказа | UAH |
authCode | код авторизации - присваивается банком | null |
createdDate | дата создания запроса в psp | 1430206630 |
processingDate | дата процессирования транзакции | null |
recToken | токен карты для рекаренговых списаний | |
reason | Wait 3ds data | |
transactionStatus | статус транзакции | InProcessing |
reasonCode | Код отказа | 5100 |
fee | Сумма комиссии | 1 |
d3AcsUrl | адрес ACS сервера эмитента, на который необходимо перенаправить пользователя для аутентификации | https:\\3dsecure.ukrsibbank.com\acs\auth\start.do |
d3Md | Уникальный идентификатор , который необходимо передать на url методом POST во время перенаправления клиента | ODMyNzRmNjgtMjEyYS00ODAyLWExYjMtZTc1Y2ZkZTNjYTBi |
d3Pareq | PaReq сообщение, которое необходимо передать на url методом POST во время перенаправления клиента | eJx1kmFvgjAQhv+K8QfQFkHBnE3YNNFF0ajZol+WBi+CAcRSVPbr 1yrO7cP66Z43vXvvroV1LBGH\nK4wqiRxmWJZij61kN2gvgk+bOZ7 TZW0Oi2CJJw5nlGVyzDmzqGUDeaDOk1EscsVBRKeXSchdx+1R\ nD0iDkKGcDDmjzfGZ51IXyF2GXGTI11iq1lSocyKA3BSIjlWuZM 096gB5AFQy5bFSRdknBKNjpotE\naKXJqRC1pfkpkqxIdJsmAcizx0Vlol IbXJMdnw9ndfi1zMLDXs0Oo3qzonQ+DOrpx2gAxNyAnVDI\n bcpc6thei9F+p9dnuvBNB5GZzji1OkwPfAcojEdwB6P\/5n\/m0k8gMY9q 7ntUyw8CvBbHHHWedvyJ\ngTyneB2bvUdKr3I\/3V5UuHo\/+7F MxsXhknbtFN+2m11qmrtfMhUT7ch8498AEFOGNA9Nmp+goz8\/\n5Bt+QbuA |
authTicket | тикет авторизации | d185a769977cc297b13bfd0edd9bdd29 |
merchantSignature | Подпись запроса | 09c85c95722fee7c2283d5f189902035 |
После получения данных от системы Wayforpay, мерчанту необходимо передать на d3AcsUr методом POST параметры d3Pareq и d3Md в следующей форме:
<form name="MPIform" action='${d3AcsUrl}' method="POST">
<input type="hidden" name="PaReq" value='${d3Pareq }'>
<input type="hidden" name="MD" value='${d3Md }'>
<input type="hidden" name="TermUrl" value='${TempUrl}'>
</form>
TempUrl - url переданный мерчантом, на который эмитент вернет ответ после аутентификации клиента.
Подтверждение 3d secure верификации
После прохождения клиентом аутентификации и редиректа на TempUrl с результатом, полученным от эмитента, мерчант направляет запрос COMPLETE_3DS.
Параметр | Описание | Обязательное |
apiVersion | Версия протокола. Значение по-умолчанию: 1 | да |
transactionType | Тип запроса, принимает значение COMPLETE_3DS | да |
authorization_ticket | тикет авторизации | да |
d3ds_md |
| да |
d3ds_pares |
| да |
В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.
Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchantAccount, orderReference, amount, currency, authCode, cardPan, transactionStatus, reasonCode разделенных “;” (точка с запятой) в кодировке UTF-8
Параметр | Описание | Пример |
merchantAccount | Идентификатор продавца | test_merchant |
orderReference | Уникальный номер заказа в системе торговца | 1212dd1 |
merchantSignature | hash_hmac | |
amount | Сумма заказа | 100 |
currency | Валюта заказа | UAH |
authCode | код авторизации - присваивается банком | 324567 |
createdDate | дата создания запроса в psp (UTC) | 123456789 |
processingDate | дата процессирования транзакции (UTC) | 12345678 |
recToken | токен карты отправителя для рекаренговых переводов | 121213321-3213213-3213213-321-3 |
transactionStatus | статус перевода | Approved |
reason | Причина отказа | Ok |
reasonCode | Код отказа | 110 |
Пример запроса и ответа
{
"transactionType":"P2P_TRANSFER",
"merchantAccount":"test_merch",
"merchantAuthType":"SimpleSignature",
"merchantSignature":"60c5d743b71f79abe48c7183ada4b451",
"apiVersion":1,
"orderReference":"myOrder1",
"orderDate":1421412898,
"amount":10.13,
"currency":"UAH",
"card":"4111111111111111",
"expMonth":"11",
"expYear":"2020",
"cardCvv":"111",
"cardHolder":"TARAS BULBA",
"cardBeneficiary":"4111111111111111"
}
{
"merchantAccount": "test_merchant",
"orderReference": "DH783023",
"merchantSignature":"b95932786cbe243a76b014846b63fe92",
"amount": "10.13",
"currency": "UAH",
"authCode": "221562",
"createdDate": "13.01.2014 15:10:47",
"processingDate": "13.01.2014 15:10:52",
"transactionStatus": "Approved",
"reason": "ok",
"reasonCode": "1100"
}