Створення платіжного QR-коду

Даний метод дає можливість генерації 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

https://wayforpay.com/qr/img/qc6173ad7fda0?size=200

 

 

Приклад запиту і відповіді

Запит:

{
"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

email платника

email@mail.com

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