Даний метод дає можливість генерації QR кодів для оплати за допомогою мобільного додатку wayforpay.qr
Результатом запиту буде отримання посилання на зображення QR коду.
Запит 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 | CREATE_QR | так |
| merchantAccount | Ідентифікатор продавця. Дане значення присвоюється Вам з боку WayForPay | так |
| merchantAuthType | Тип авторизації: SimpleSignature | ні |
| merchantDomainName | Доменне ім'я веб-сайту торгівця | так |
| merchantSignature | Підпис запиту | так |
| apiVersion | Версія протоколу. Значення за замовчуванням: 1 | так |
| serviceUrl | URL, на який система повинна відправляти повідомлення з результатом оплати інвойсу безпосередньо мерчанту | ні |
| orderReference | Унікальний номер транзакції в системі торгівця | так |
| orderDate | Дата розміщення замовлення | так |
| amount | Сума до оплати | так |
| currency | Валюта замовлення UAH | так |
| alternativeAmount | Альтернативна сума замовлення | ні |
| alternativeCurrency | Альтернативна валюта замовлення USD, EUR | ні |
| orderTimeout | Встановлює час життя qr коду - протягом якого клієнт може спробувати його оплатити. За замовчуванням invoice доступний до оплати протягом 1 години | ні |
| productName[] | Масив з найменуванням замовлених товарів | так |
| productPrice[] | Масив з цінами за одиницю товару. Ця інформація буде видна на сторінці оплати замовлення | так |
| productCount[] | Масив з кількістю замовленого товару по кожній позиції. | так |
| clientFirstName | Ім'я клієнта (мінімальна довжина 1 символ) | ні |
| clientLastName | Прізвище клієнта (мінімальна довжина 1 символ) | ні |
| clientEmail | Email клиєнта | ні |
| clientPhone | Номер телефону клієнта | ні |
Параметри відповіді:
| reason | Причина відмови | |
| reasonCode | Код відмови | |
| imageUrl |
Приклад запиту і відповіді
Запит:
{
"TRANSACTIONTYPE":"CREATE_QR",
"MERCHANTACCOUNT":"TEST_MERCH_N1",
"MERCHANTAUTHTYPE":"SIMPLESIGNATURE",
"MERCHANTDOMAINNAME":"WWW.SUPER.ORG",
"MERCHANTSIGNATURE":"60C5D743B71F79ABE48C7183ADA4B451",
"APIVERSION":1,
"SERVICEURL":”HTTP://SERVICEURL.COM”,
"ORDERREFERENCE":"MYORDER1",
"ORDERDATE":1421412898 ,
"AMOUNT":1547.36,
"CURRENCY":"UAH",
"ORDERTIMEOUT": 86400,
"PRODUCTNAME":["SAMSUNG WB1100F","SAMSUNG GALAXY TAB 4 7.0 8GB 3G BLACK"],
"PRODUCTPRICE":[21.1,30.99],
"PRODUCTCOUNT":[1,2],
"CLIENTFIRSTNAME":"BULBA",
"CLIENTLASTNAME":"TARAS",
"CLIENTEMAIL":"ROB@MAIL.COM",
"CLIENTPHONE":"380556667788"
}
Відповідь:
{
"REASON":"1100",
"REASONCODE":"OK",
"INVOICEURL":"HTTPS://SECURE.WAYFORPAY.COM/PAY/5534EB845B744D27B3CA57EB38A74599&SIGN=A4A923EDD74F9B23BDD8922B4A2D8630",
}
Повідомлення мерчанта про статус оплати QR коду
Для авторизованих і перевірених замовлень (а також при зміні статусу замовлення) серевер WayForPay направляє на serviceUrl запит (HTTP_POST) включає в себе дані замовлення.
Дана інформація доповнюється контрольним підписом HMAC_MD5.
У разі, якщо WayForPay НЕ отримає коректну відповідь від сервера торговця, то система буде направляти запити на протязі 4-х діб або до отримання правильної відповіді.
Параметри запиту шлюзу WayForPay на serviceUrl
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті 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 |
| | email платника | |
| phone | Номер телефону платника | +38063-333-33-33 |
| createdDate | Дата створення запиту в psp | 123456789 |
| processingDate | Дата процесування транзакції | 12345678 |
| cardPan | Маскування номеру карти | 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 |
Приклад запиту на serviceUrl
{
"MERCHANTACCOUNT":"TEST_MERCH_N1",
"ORDERREFERENCE":"MYORDER1 ",
"MERCHANTSIGNATURE":"",
"AMOUNT":"1547.36",
"CURRENCY":"UAH",
"AUTHCODE":"541963",
"EMAIL":"CLIENT@MAIL.UA",
"PHONE":"380501234567",
"CREATEDDATE":"",
"PROCESSINGDATE":"",
"CARDPAN":"4102****8217",
"CARDTYPE":"VISA",
"ISSUERBANKCOUNTRY":"980",
"ISSUERBANKNAME":"PRIVATBANK",
"RECTOKEN":"",
"TRANSACTIONSTATUS":"APPROVED",
"REASON":"1100",
"REASONCODE":"",
"FEE":"",
"PAYMENTSYSTEM":"CARD"
}
Приклад коректної відповіді від мерчанта
Система WayForPay очікує отримати від сервера торгівця таку відповідь:
{
"ORDERREFERENCE":"DH783023",
"STATUS":"ACCEPT",
"TIME":1415379863,
"SIGNATURE":""
}
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів orderReference, status, time розділених ";" (крапка з комою) в кодуванні UTF-8