Принять платеж с вводом реквизитов на странице магазина (Charge)

Запрос Charge используется для быстрого проведения  платежа одним действием. Выполняется в рамках одностадийной схемы.

Результатом обработки запроса является списание денежных средств с карты клиента.

Параметры запроса

Запрос c необходимыми параметрами формируется на стороне торговца и передается методом POST по протоколу HTTP на URL https://api.wayforpay.com/api

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации парамаетров merchantAccount, merchantDomainName, orderReference, orderDate, amount, currency, productName[0], productName[1]..., productName[n], productCount[0], productCount[1],..., productCount[n], productPrice[0], productPrice[1],..., productPrice[n]  разделенных “;” (точка с запятой) в кодировке UTF-8

 

Параметр

Описание

Обязательное

transactionType

CHARGE

да

merchantAccount

Идентификатор продавца. Данное значение присваивается Вам со стороны WayForPay

да

merchantAuthType

Тип авторизации. Может принимать одно из следующих значений:

- SimpleSignature (по умолчанию)

нет

merchantDomainName

Доменное имя веб-сайта торговца

да

merchantTransactionType

Тип транзакции. Может принимать одно из следующих значений:

- SALE - списание средств с карты

- AUTH - блокировка средств на карте

да

merchantTransactionSecureType

Тип безопасности для прохождение транзакции. Может принимать одно из следующих значений:

- AUTO 

- 3DS

- NON3DS

да

merchantSignature

Подпись запроса

да

apiVersion

Версия протокола. Значение по-умолчанию: 1

да

serviceUrl

URL, на который система должна отправлять ответ с результатом платежа напрямую мерчанту

нет

orderReference

Уникальный номер заказа в системе торговца

да

orderDate

Дата размещение заказа

да

amount

Сумма заказа

да

currency

Валюта заказа:

UAH (USD, EUR)

да

holdTimeout

Время действия блокировки средств в секундах. По умолчанию:

1 728 000 (20 дней).

Максимум  1 728 000 (20 дней). Минимальное значение 60(1 минута).

нет

card

Номер карты 16 цифр

нет

expMonth

Месяц истечения срока действия карты - MM

нет

expYear

Год истечения срока действия карты - YYYY

нет

cardCvv

Секретный корд карты CVV/CVV2

нет

cardHolder

имя владельца карты, как указано на карте

нет

recToken

Токен карты — для повторного списания без участия клиента (без передачи реквизитов карты)

нет

productName[]

Массив с наименованием заказанных товаров

да

productPrice[]

Массив с ценами за единицу товара. Данная информация будет видна на странице оплаты заказа

да

productCount[]

Массив с количеством заказанного товара по каждой позиции.

да

clientAccountId

уникальный идентификатор клиента в системе торговца (логин, email и т.д.)

нет

socialUri

Уникальный идентификатор ресурса. Пример: https://www.facebook.com/vladislavsolodkiy

нет

clientFirstName

Имя клиента

да

clientLastName

Фамилия клиента

да

clientEmail

Email клиента

да

clientPhone

Номер телефона клиента

да

clientCountry

Страна клиента

да

clientIpAddress

ip-адрес, с которого заходил клиент на страницу мерчанта для совершения покупки

нет

clientAddress

Адрес клиента

нет

clientCity

Город клиента

нет

clientState

Штат/Область клиента

нет

clientZipCode

Почтовый индекс клиента

нет

Примечание: поля (card+expMonth+expYear+cardCvv+cardHolder) или recToken должно быть обязательным.

 

При merchantTransactionSecureType= 3DS, первично выполняется проверка карты на участие в программе 3d secure.

  • Если карта не поддерживает 3D Secure  - вернется ответ Declined, код 1120, описание Authentication unavailable.
  • Если карта поддерживает 3D Secure верификацию, система Wayforpay вернет параметры для аутентификации клиента.

С данными параметрами мерчанту необходимо перенаправить клиента на url эмитента для аутентификации. 

Время в течение которого живет сессия на верификацию - 15 минут. Если в течение 15 минут не будет получен COMPLETE_3DS, система отклонит транзакцию как неуспешную.

 

Параметр

Описание

Пример

merchantAccount

Идентификатор продавца

test_merch_n1

orderReference

Уникальный номер заказа в системе торговца

order-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>

TermUrl- url переданный мерчантом, на который эмитент вернет ответ после аутентификации клиента.

 

Подтверждение 3d secure верификации

После  прохождения клиентом аутентификации и редиректа на TermUrl с результатом, полученным от эмитента, мерчант направляет запрос COMPLETE_3DS.

 

Параметр

Описание

Обязательное

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_merch_n1

orderReference

Уникальный номер заказа в системе торговца

1212dd1

merchantSignature

hash_hmac

 

amount

Сумма заказа

100

currency

Валюта заказа

UAH

authCode

код авторизации - присваив

 

ается банком

324567

createdDate

дата создания запроса в psp (UTC)

123456789

processingDate

дата процессирования транзакции (UTC)

12345678

cardPan

маскированный номер карты (44****4444)

42****4242

cardType

типа карты: Visa/MasterCard

Visa

issuerBankCountry

Страна карты в цифровом ISO 3166-1-Alpha 3

980

issuerBankName

Имя Банка карты

PrivatBank

recToken

токен карты для рекаренговых списаний

121213321-3213213-3213213-321-3

transactionStatus

статус транзакции

Approved

reason

Причина отказа

Ok

reasonCode

Код отказа

1100

fee

Комиссия psp

0.00

paymentSystem

Платежная система, через которую был осуществлен платеж.

card

 

Пример запроса и ответа

Запрос
{
"transactionType":"CHARGE",
"merchantAccount":"test_merch_n1",
"merchantAuthType":"SimpleSignature",
"merchantDomainName":"www.super.org",
"merchantTransactionType":"AUTH",
"merchantTransactionSecureType": "NON3DS",
"merchantSignature":"60c5d743b71f79abe48c7183ada4b451",
"apiVersion":1,
"orderReference":"myOrder1",
"orderDate":1421412898,
"amount":0.13,
"currency":"UAH",
"card":"4111111111111111",
"expMonth":"11",
"expYear":"2020",
"cardCvv":"111",
"cardHolder":"TARAS BULBA",
"productName":["Samsung WB1100F","Samsung Galaxy Tab 4 7.0 8GB 3G Black"],
"productPrice":[21.1,30.99],
"productCount":[1,2],
"clientFirstName":"Bulba",
"clientLastName":"Taras",
"clientCountry":"UKR",
"clientEmail":"rob@mail.com",
"clientPhone":"380556667788",
"clientIpAdress":" "
}
 
Пример запроса на serviceUrl
{
"merchantAccount":"test_merch_n1",
"orderReference":"DH783023",
"merchantSignature":"",
"amount":1547.36,
"currency":"UAH",
"authCode":"541963",
"createdDate":12345678,
"processingDate":12345678,
"cardPan":"41****8217",
"cardType":"visa",
"issuerBankCountry":"980",
"issuerBankName":"Privatbank",
"recToken":"121213321-3213213-3213213-321-3",
"transactionStatus":"Approved",
"reason":"ok",
"reasonCode":"1100",
"fee":0,
"paymentSystem":"card"
}

Пример корректного ответа от мерчанта

Система WayForPay ожидает получить от сервера торговца следующий ответ:

{
"orderReference":"DH783023",
"status":"accept",
"time":1415379863,
"signature":""
}

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров orderReference, status, time разделенных “;” (точка с запятой) в кодировке UTF-8

Уведомление мерчанта о статусе транзакции

Для авторизованных и проверенных заказов (а также при смене статуса заказа) серевер WayForPay направляет на serviceUrl запрос (HTTP_POST) включающий в себя данные заказа. Данная информация дополняется контрольной подписью HMAC_MD5.

В случае, если WayForPay НЕ получит корректный ответ от сервера торговца, то система будет направлять запросы в течении 4-х суток или до получения правильного ответа.