Основні запити та відповіді: відмінності між версіями
Рядок 654: | Рядок 654: | ||
== Параметри BrowseInfo при 3DS оплаті == | == Параметри BrowseInfo при 3DS оплаті == | ||
==== Параметри BrowseInfo при 3DS оплаті ==== | |||
У зв'язку з переходом банків - екваєрів на модель роботи 3D Secure 2.x, при створенні замовлення з одночасною передачею інструменту оплати в запиті (карта, токен карти, токен Apple / Google Pay), необхідно передавати додаткові параметри пристрою (браузера) клієнта в заголовках і в тілі запиту createOrder, у прикладі вони виділені: | |||
<p style="border: 1px solid #9ACD32; background-color: rgba(144, 238, 144, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;"> | |||
<span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span> | |||
<span style="margin-left: 5px; font-weight: bold; font-size: 16px;">/api/merchant/createOrder</span> | |||
</p>'''HEADERS''' | |||
"appId: b15c4b64-8964-4c80-852e-df59a0e0d9b6",<br> | |||
"pageId: 607514b8-1da5-490a-bdf3-0c6883131625",<br> | |||
"partnerKey: easypay-test",<br> | |||
"sign: XJ3roGhTLwAZXigBp/iVRdsXlZYdTSen3xSM+29GaRg=",<br> | |||
"Content-Type:application/json",<br> | |||
<span style="color: green;">"AcceptHeader:*/*",</span><br> | |||
<span style="color: green;">"User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"</span><br> | |||
'''BODY''' | |||
<div style="font-family: monospace; white-space: pre-line;"> | |||
"order":{ | |||
"serviceKey":"MERCHANT-TEST", | |||
"orderId":"test_3ds2x", | |||
"additionalItems":{ | |||
"Merchant.UrlNotify":"http://url.noti.fy" | |||
}, | |||
"description":"Easy test payment", | |||
"amount":"1" | |||
}, | |||
"userPaymentInstrument":{ | |||
"instrumentType":"Card", | |||
"pan":"4444444444444444", | |||
"expire":"0599", | |||
"cvv":"123" | |||
}, | |||
<span style="color: green;"> | |||
"browserInfo":{ | |||
"colorDepth":"24", | |||
"screenHeight":"824", | |||
"screenWidth":"1536", | |||
"language":"uk-UA", | |||
"javaEnabled":"false", | |||
"javascriptEnabled": "true", | |||
"timeZone":"-180" | |||
} | |||
</span> | |||
</div> | |||
<br> | |||
'''Параметри''' <table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;"><tr> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Параметр</th> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Характеристика</th><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>AcceptHeader:*/*</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">передавайте без змін</td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>User-Agent</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">передавайте клієнтський User-Agent </td></tr></table> | |||
'''Приклад, як збирати дані на JS:'''<syntaxhighlight lang="markdown" line="1"> | |||
getBrowserInfo() { | |||
let browserInfoModel = {}; | |||
browserInfoModel.colorDepth = window.screen.colorDepth.toString(); | |||
browserInfoModel.screenHeight = window.screen.height.toString(); | |||
browserInfoModel.screenWidth = window.screen.width.toString(); | |||
browserInfoModel.language = window.navigator.language; | |||
browserInfoModel.javaEnabled = window.navigator.javaEnabled(); | |||
browserInfoModel.timeZone = (new Date()).getTimezoneOffset().toString(); | |||
return browserInfoModel; | |||
} | |||
</syntaxhighlight>Якщо все передано правильно, то отримайте відповідь як нижче у прикладі '''"Якщо передано userPaymentInstrument (для випадку з 3DSecure)",''' або помилку оплати з картки, наприклад, "Недостатньо коштів". | |||
У випадку, якщо додаткові параметри передані неправильно, отримайте помилку платіжного сервісу, наприклад:<syntaxhighlight lang="markdown"> | |||
"errorCode":"PAYMENT_PUMB_SERVICE_FAILURE", | |||
"errorMessage":"Технічна помилка екваєра. Зверніться до служби підтримки EasyPay, або спробуйте пізніше" | |||
</syntaxhighlight>'''Відповідь (RESPONSE)''':<syntaxhighlight lang="json" line="1"> | |||
header: | |||
відсутній | |||
body: | |||
{ | |||
"accountInfo": null, | |||
"bankingDetails": null, | |||
"amount": 1, | |||
"amountMax": 4999, | |||
"amountMin": 0.01, | |||
"paymentInstrumentsTypes": [ | |||
{ | |||
"instrumentType": "EMoney", | |||
"commission": 0, | |||
"amountMin": 0.01, | |||
"amountMax": 4999, | |||
"userPaymentInstruments": [] | |||
}, | |||
{ | |||
"instrumentType": "RCard", | |||
"commission": 2, | |||
"amountMin": 0.01, | |||
"amountMax": 4999, | |||
"userPaymentInstruments": [] | |||
}, | |||
{ | |||
"storedCards": [], | |||
"instrumentType": "Card", | |||
"commission": 2, | |||
"amountMin": 0.01, | |||
"amountMax": 4999, | |||
"userPaymentInstruments": [ | |||
{ | |||
"instrumentId": 4211698, | |||
"instrumentType": "Card", | |||
"instrumentValue": null, | |||
"alias": null, | |||
"commission": 2, | |||
"loyaltyCommission": null, | |||
"actionsKeys": null, | |||
"priorityIndex": 0, | |||
"additionalParams": {} | |||
} | |||
] | |||
}, | |||
{ | |||
"walletStatus": "NotRegistered", | |||
"instrumentType": "MasterPass", | |||
"commission": 2, | |||
"amountMin": 0.01, | |||
"amountMax": 4999, | |||
"userPaymentInstruments": [] | |||
}, | |||
{ | |||
"instrumentType": "LifeMoney", | |||
"commission": 0.03, | |||
"amountMin": 0.01, | |||
"amountMax": 4999, | |||
"userPaymentInstruments": [ | |||
{ | |||
"instrumentId": 5098216, | |||
"instrumentType": "LifeMoney", | |||
"instrumentValue": null, | |||
"alias": null, | |||
"commission": 0.03, | |||
"loyaltyCommission": null, | |||
"actionsKeys": null, | |||
"priorityIndex": 0, | |||
"additionalParams": {} | |||
} | |||
] | |||
} | |||
], | |||
"forwardUrl": https://easypay.ua/whitepage/81b14a73-730c-40d4-8064-ce1c10e0c53b, | |||
"error": null, | |||
} | |||
Якщо передано userPaymentInstrument (для випадку з 3DSecure): | |||
{ | |||
"paymentState":"WaitVerify", | |||
"action":"https://merchantapi.easypay.ua/api/payment/redirect/4df828bf-379b-4e88-8868-f667f12d74a9", | |||
"actionContent":"<html><head></head><body><form action='https://acs.monobank.com.ua/PaReqVISA.jsp' method='post' id='submitForm'><input type='hidden' name='PaReq' value='eJxVUsluwjAQ/RWUY6VgO2RFg1FoqJpDUgThwNF1XAglS7NUpF9fm4alt3nzxvNm3hjm5/w0+hZ1k5XFTCNjrI1Ewcs0K/YzbZu86K42p5AcaiGCjeBdLShEomnYXoyydKY5mGNuWh966mKmm6lH9HcHY91zLeZMmGkT19EorPy1+KIwCFGpMzYAXaHsWPMDK1oKjH8twpiaBBumBWiAkIs6DCgh9oQ4rmsRW2pgQH9pKFgu6NLf7Fb+7ikIN8k6XGyT8C0GdKGAl13R1j21zQmgK4CuPtFD21bNFCHBmr5i/bhjCJAiAN2HWnUqamSjc5bS+Mj7+Pg5iY5LIwp8HCe7nyjZ4igJZ4BUBaSsFdTABsYecUfEmxIyteQ6lzywXE1AidpgiKFSEv4D8ZgA6Xstz9JTz5XUDYE4V2UhZIU08xYDus/7/Kos5a0yz7Kx6dgWNpStl5R6n0knDBNblwYKAFKP0HAxNBxbRv8+wS+7NLXc' /><input type='hidden' name='TermUrl' value='https://merchantapi.easypay.ua/api/payment/confirm/185ff3c7-8daa-4715-af1a-23f7554d19bb,0e101596-2a6a-4a0e-92e2-dac1e7a5c69d,-1' /><input type='hidden' name='MD' value='ee6eda7e-6252-41af-a696-825e85b34878' /></form><script>document.getElementById('submitForm').submit();</script> </body></html>", | |||
"actionType":"FormRedirect", | |||
"status":"Need3Ds", "alternativeRedirectUrl":"https://merchantapi.easypay.ua/api/payment/altredirect/00f9befe-a200-4e4d-ae27-0a4bdbc443fc", | |||
"transactionId":860094566, | |||
"retrievalReferenceNo":null, | |||
"responseItems":{ | |||
"SessionId":"a9692063-2db5-4d25-8a66-e62b4476d1e4", | |||
"MerchantOpertion":"CheckPaymentOperationOrder", | |||
"Operation":"CheckPayment", | |||
"BankingDetails":"" | |||
}, | |||
"error":null | |||
} | |||
Якщо передано userPaymentInstrument (для випадку без 3DSecure): | |||
{ | |||
"redirectUrl":null, | |||
"action":null, | |||
"paymentState":"Confirmed", | |||
"status":"Done", | |||
"actionType":"UrlRedirect", | |||
"transactionId":847870521, | |||
"retrievalReferenceNo":null, | |||
"responseItems": null, | |||
"error":null | |||
} | |||
</syntaxhighlight>'''Опис параметрів'''<table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;"> | |||
<tr> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Параметр</th> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Характеристика</th> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Коментарій</th> | |||
</tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>accountInfo</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">додаткова інформація про послугу </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">Якщо параметр відсутній, використовується значення ServiceKey з тіла запиту CreateOrder'''.''' | |||
</td> | |||
</tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amount</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">сума замовлення </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">Якщо параметр відсутній, використовується значення OrderId, передане в тілі запиту CreateOrder.</td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amountMax</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">максимальна сума платежу за послугою </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td> | |||
</tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amountMin</code>'''</td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">мінімальна сума за послугою </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td> | |||
</tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>forwardUrl</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URL сторінки оплати, для партнерів які не мають сертифікатів PCI DSS для обробки карткових даних. Або якщо партнер не має платіжної сторінки. </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">на сторінці оплати можемо відключати елементи інтерфейсу: | |||
- логотип EasyPay можемо приховувати | |||
- лічильник часу, що залишився до оплати, може бути відображений/прихований | |||
- поле "Призначення" (можемо вимкнути, або за замовчуванням зробити відкритим/закритим) | |||
- рядок з логотипом партнера та назвою можемо приховати | |||
- поле введення імейл сховати / відобразити | |||
- рядок з "Номер замовлення" приховати/показати | |||
</td> | |||
</tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentInstrumentsTypes</code>'''</td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">список інструментів оплати. Інструменти '''Emoney''', vcard та '''RCard''' видаємо тільки для користувачів, які авторизовані в системі EasyPay. </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"> | |||
Можливі значення '''instrumentType''' | |||
* Emoney – гаманець EasyPay | |||
* Card – платіжна картка | |||
* RCard – платіжна картка, підв'язана в системі EasyPay | |||
* ApplePay – оплата через ApplePay | |||
* GooglePay – оплата через GooglePay | |||
* LifeMoney – мобільні гроші Лайф. | |||
* KsMoney – мобільні гроші Київстар | |||
* VodafoneMoney – мобільні гроші Водафон | |||
* картки лояльності Fishka | |||
</td> | |||
</tr></table> | |||
'''3DSecure / mobile payments case:'''<syntaxhighlight lang="json"> | |||
Якщо передано userPaymentInstrument (для випадку з 3DSecure): | |||
{ | |||
"paymentState":"WaitVerify", | |||
"action":"https://merchantapi.easypay.ua/api/payment/redirect/4df828bf-379b-4e88-8868-f667f12d74a9", | |||
"actionContent":"<html><head></head><body><form" action="https://acs.monobank.com.ua/PaReqVISA.jsp' method='post' id='submitForm'><input type="hidden" name="PaReq" value='eJxVUsluwjAQ/RWUY6VgO2RFg1FoqJpDUgThwNF1XAglS7NUpF9fm4alt3nzxvNm3hjm5/w0+hZ1k5XFTCNjrI1Ewcs0K/YzbZu86K42p5AcaiGCjeBdLShEomnYXoyydKY5mGNuWh966mKmm6lH9HcHY91zLeZMmGkT19EorPy1+KIwCFGpMzYAXaHsWPMDK1oKjH8twpiaBBumBWiAkIs6DCgh9oQ4rmsRW2pgQH9pKFgu6NLf7Fb+7ikIN8k6XGyT8C0GdKGAl13R1j21zQmgK4CuPtFD21bNFCHBmr5i/bhjCJAiAN2HWnUqamSjc5bS+Mj7+Pg5iY5LIwp8HCe7nyjZ4igJZ4BUBaSsFdTABsYecUfEmxIyteQ6lzywXE1AidpgiKFSEv4D8ZgA6Xstz9JTz5XUDYE4V2UhZIU08xYDus/7/Kos5a0yz7Kx6dgWNpStl5R6n0knDBNblwYKAFKP0HAxNBxbRv8+wS+7NLXc' /><input type='hidden' name='TermUrl' value='https://merchantapi.easypay.ua/api/payment/confirm/185ff3c7-8daa-4715-af1a-23f7554d19bb,0e101596-2a6a-4a0e-92e2-dac1e7a5c69d,-1' /><input type='hidden' name='MD' value='ee6eda7e-6252-41af-a696-825e85b34878' /></form><script>document.getElementById('submitForm').submit();</script> </body></html>", | |||
"actionType":"FormRedirect", | |||
"status":"Need3Ds", "alternativeRedirectUrl":"https://merchantapi.easypay.ua/api/payment/altredirect/00f9befe-a200-4e4d-ae27-0a4bdbc443fc", | |||
"transactionId":"860094566", | |||
"retrievalReferenceNo":"null", | |||
"responseItems":{ | |||
"SessionId":"a9692063-2db5-4d25-8a66-e62b4476d1e4", | |||
"MerchantOpertion":"CheckPaymentOperationOrder", | |||
"Operation":"CheckPayment", | |||
"BankingDetails":"" | |||
}, | |||
"error":null | |||
} | |||
Якщо передано userPaymentInstrument (для випадку без 3DSecure): | |||
{ | |||
"redirectUrl":null, | |||
"action":null, | |||
"paymentState":"Confirmed", | |||
"status":"Done", | |||
"actionType":"UrlRedirect", | |||
"transactionId":847870521, | |||
"retrievalReferenceNo":null, | |||
"responseItems": null, | |||
"error":null | |||
} | |||
</syntaxhighlight> | |||
<br>'''Опис параметрів'''<table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;"> | |||
<tr> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Параметр</th> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Характеристика</th></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentState</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;"> | |||
* '''Confirmed''' - платіж підтверджений (кінцевий статус, якщо "status": "done") | |||
* '''WaitConfirm''' - платіж у статусі "обробляється", необхідно додатково запросити фінальний статус платежу | |||
* '''WaitVerify''' - від клієнта очікується підтвердження (наприклад, якщо "status": "Need3Ds" - необхідно пройти перевірку 3D Secure) </td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>status</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;"> | |||
* '''Done''' - додаткові дії не потрібні, якщо при цьому "зберіганнядержави":"затверджено", означає платіж повністю успішний. При іншому значенні paymentState- платіж не прийняв кінцевий статус, необхідно запросити статус ([[MerchantAPI#Перевірка статусу платежу|Перевірка статусу платежу]]). | |||
* '''Need3Ds''' - необхідно підтвердження 3D Secure від клієнта ([[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]]) | |||
* '''NeedConfirmCode''' - необхідно надіслати код перевірки зі смс методом confirmCodeVerification ([[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]]) | |||
* '''NeedLookup''' - необхідно надіслати код перевірки з смс '''''методом confirmCodeVerification ('''''[[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]]) </td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>actionType</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">тип наступної дії: | |||
* '''"FormRedirect"''' - необхідно створити сторінку (форму) з html-коду, який передано у параметрі "actionContent" :'''"<html>...</html>",''' відкрити її клієнту, наприклад, для проходження ним 3D-secure перевірки. Альтернативним варіантом є переадресація клієнта за посиланням параметра '''"alternativeRedirectUrl".''' | |||
* Після проходження перевірки клієнт буде передресовано на фінальну сторінку EasyPay або на | |||
<code>"urls": {</code> | |||
<code>"success": "string",</code> | |||
<code>"failed": "string"</code> | |||
<code>}</code> | |||
* '''"UrlRedirect"''' - переадресувати клієнта на посилання з "action" або переадресувати клієнта за посиланням з '''"alternativeRedirectUrl".''' | |||
* '''"ConfirmCode"''' -необхідно надіслати код перевірки з смс методом '''confirmCodeVerification''' ([[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]]) | |||
'''"None"''' - можливий при використанні інструменту гаманець '''("instrumentType": "EMoney"),''' кошти успішно списані з гаманця, партнеру надсилається повідомлення про списання. </td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>actionContent</code>'''</td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''"<html>...</html>"''' - html форма сторінки банку для введення коду 3DS. Сформувати сторінку з коду та відкрити її клієнту. Після підтвердження платежу відбудеться 302-й редирект на ваші "urls" із запиту createOrder, або на фінальну сторінку EasyPay </td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>transactionId</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">номер транзакції в EasyPay </td></tr></table> | |||
'''<br />2DSecure case:'''<table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;"> | |||
<tr> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Параметр</th> | |||
<th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Характеристика</th></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentState</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''"Confirmed"''' та '''"status": "Done"''' - платіж пройшов успішно. При інших значеннях необхідно перевірити статус '''''платежу''''' '''('''[[MerchantAPI#Перевірка статусу платежу|Перевірка статусу платежу]]''')''' </td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>status</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''"Done" -'''платіж завершено, додаткові дії не потрібні. При '''"paymentState":''' | |||
* '''"Confirmed"''' - означає, що транзакція на стороні EasyPay прийнята (http - оповіщення успішно доставлено партнеру) </td></tr><tr> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>transactionId</code>''' </td> | |||
<td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">номер транзакції до EasyPay </td></tr></table> | |||
<br> | |||
== Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки == | == Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки == | ||
== Перевірка статусу платежу == | == Перевірка статусу платежу == |
Версія за 15:34, 12 серпня 2025
Реєстрація точки та створення сесії
Цей метод слід викликати, коли користувач вперше звертається до платіжної сторінки. Якщо браузер або пристрій змінюються, метод знову з'являється
POST /api/system/createApp
Request
headers:
"PartnerKey": "partnerName",
"locale": "ua"
Response
body:
{
"logoPath": "https://cdn.easypay.ua/logo/",
"hintImagesPath": "https://cdn.easypay.ua/hint_images/",
"apiVersion": "1.0",
"appId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1",
"pageId": "f3f2b678-a3c4-45ba-a865-a136fe4a62bd",
"error": null
}
Характеристика параметрів
ПараметриПараметр | Характеристика | Коментарій |
---|---|---|
AppId |
ідентифікатор торгової точки партнера | за замовчуванням, якщо не було активності за запитами,
час життя AppId - 3 місяці. З кожним запитом життя AppId автоматично продовжується. |
PageId |
ідентифікатор сесії | параметр валідний протягом 20 хв. Для кожного запиту CreateOrder потрібно використовувати унікальний PageID |
Створення сесії
Створення сесії
Даний метод створює новий екземпляр сеансу для користувача , PageId
.
POST /api/system/createPage
Request
headers
"PartnerKey": "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
Response
body:
{
"logoPath": "https://cdn.easypay.ua/logo/",
"hintImagesPath": null,
"apiVersion": "1.0",
"appId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1",
"pageId": "29bd7237-6b8d-4048-b028-6efc23d05988",
"requestedSessionId": "fa3595d3-52de-4744-9fc6-ec2d3507d5a5",
"error": null
}
Характеристика параметрів
Параметр | Характеристика | Коментарій |
---|---|---|
AppId |
ідентифікатор торгової точки партнера | за замовчуванням, якщо не було активності за запитами,
час життя AppId - 3 місяці. З кожним запитом життя AppId автоматично продовжується. |
PageId |
ідентифікатор сесії | За замовчуванням, якщо не було активності за запитами, час життя PageId - 20 хвилин. З кожним запитом життя PageId автоматично продовжується. |
Створення замовлення
Створення замовлення для холдованих платежів
Перед використанням методу потрібне додаткове налаштування терміналів зі сторони техпідтримкиEasyPay.
Перед викликом цього методу потрібно викликати один із методів:
POST /api/merchant/createOrder
REQUEST HEADERS
PartnerKey: partnerName
locale: ua
AppId: a5806a5f-dbb8-496a-a23f-aab6d2fcbce1
PageId: 2ce7dba6-4600-456e-b9c8-f13cacf1c85d
Sign: e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4=
REQUEST BODY
{
"order": {
"serviceKey": "string",
"orderId": "string",
"description": "string",
"amount": 1.01,
"paymentOperation": "Hold",
"expire": "2019-04-15T07:49:20.009Z",
"isOneTimePay": true,
"additionalItems": {}
},
"urls": {
"success": "string",
"failed": "string"
}
}
Опис параметрів
Параметр | Характеристика |
---|---|
serviceKey |
ідентифікатор послуги |
orderId |
унікальний ідентифікатор замовлення в системі партнера |
description |
опис замовлення |
amount |
сума замовлення |
paymentOperation = Hold |
параметр, що вказує, що подальший платіж буде холдовано(зарезервовано) з можливістю підтвердження або скасування. |
Необов'язкові параметри
Параметр | Характеристика | Коментарій |
---|---|---|
expire |
час життя замовлення. | Після закінчення вказаного часу замовлення оплатити неможливо. При ненульовому значенні на платіжній сторінці відображатиметься таймер. Значення повинне перевищувати поточний час щонайменше на 5 хвилин. Типове значення — 3 дні. |
isOneTimePay |
вказує, чи можна оплатити одне замовлення кілька разів. | Типове значення — True. |
additionalItems |
додаткові параметри | наприклад:
|
URLs | URL сторінки успішної оплати для редиректу клієнта. | failed — URL сторінки помилки для редиректу клієнта.
приклад параметрів, що передаються на url.success (без errorCode) і
|
RESPONSE
HEADERS
-------
BODY
{
"accountInfo": null,
"bankingDetails": null,
"amount": 1,
"amountMax": 4999,
"amountMin": 0.01,
"paymentInstrumentsTypes": [
{
"instrumentType": "EMoney",
"commission": 0,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"instrumentType": "RCard",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"storedCards": [],
"instrumentType": "Card",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": [
{
"instrumentId": 4211698,
"instrumentType": "Card",
"instrumentValue": null,
"alias": null,
"commission": 2,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
},
{
"walletStatus": "NotRegistered",
"instrumentType": "MasterPass",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"instrumentType": "LifeMoney",
"commission": 0.03,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": [
{
"instrumentId": 5098216,
"instrumentType": "LifeMoney",
"instrumentValue": null,
"alias": null,
"commission": 0.03,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
}
],
"forwardUrl": "https://easypay.ua/whitepage/81b14a73-730c-40d4-8064-ce1c10e0c53b",
"error": null
}
Параметр | Характеристика | Коментарій |
---|---|---|
accountInfo |
додаткова інформація про послугу | |
amount |
сума замовлення | |
amountMax |
максимальна сума платежу за послугою | |
amountMin |
мінімальна сума за послугою | |
forwardUrl |
URL сторінки оплати, для партнерів, у яких немає сертифікатів PCI DSS для обробки карткових даних. Або якщо у партнера немає власної платіжної сторінки. | |
paymentInstrumentsTypes |
список інструментів оплати. Інструмент RCard надається лише користувачам, які авторизовані в системі EasyPay. Можливі значення instrumentType |
Можливі значення instrumentType:
|
Холдування платежу можна здійснити, оплативши замовлення на сторінці оплати (перейти за forwardUrl), або вказавши в запиті createOrder інструмент оплати у userPaymentInstrument (див. Створення замовлення).
Клієнту відобразиться сторінка успішного платежу EasyPay, або сторінка, вказана в “urls”:{}.
Після спроби холдування платежу партнеру буде відправлено сповіщення, згідно з варіантом, вказаним в налаштуваннях сервісу Повідомлення про платіж.
Статус платежу необхідно перевірити методом orderState
Після успішного холдування необхідно викликати або unHoldOrder , або orderCancel
Якщо протягом повних 10 днів після холдування жоден з цих методів не буде викликаний, на 11-й день близько 05:00 платіж може бути відхилений емітентом, і кошти стануть доступні клієнту.
У транзакцію додається коментар: Автоматично відхилено через 10 днів. (SYSTEM ACCOUNT [dateTime])
Сповіщення партнеру при цьому не надсилається.
Створення замовлення для холдованих платежів
Створення замовлення для холдованих платежів
Перед використанням методу потрібне додаткове налаштування терміналів зі сторони техпідтримкиEasyPay.
Перед викликом цього методу потрібно викликати один із методів:
POST /api/merchant/createOrder
REQUEST HEADERS
PartnerKey: partnerName
locale: ua
AppId: a5806a5f-dbb8-496a-a23f-aab6d2fcbce1
PageId: 2ce7dba6-4600-456e-b9c8-f13cacf1c85d
Sign: e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4=
REQUEST BODY
{
"order": {
"serviceKey": "string",
"orderId": "string",
"description": "string",
"amount": 1.01,
"paymentOperation": "Hold",
"expire": "2019-04-15T07:49:20.009Z",
"isOneTimePay": true,
"additionalItems": {}
},
"urls": {
"success": "string",
"failed": "string"
}
}
Опис параметрів
Параметр | Характеристика |
---|---|
serviceKey |
ідентифікатор послуги |
orderId |
унікальний ідентифікатор замовлення в системі партнера |
description |
опис замовлення |
amount |
сума замовлення |
paymentOperation = Hold |
параметр, що вказує, що подальший платіж буде холдовано(зарезервовано) з можливістю підтвердження або скасування. |
Необов'язкові параметри
Параметр | Характеристика | Коментарій |
---|---|---|
expire |
час життя замовлення. | Після закінчення вказаного часу замовлення оплатити неможливо. При ненульовому значенні на платіжній сторінці відображатиметься таймер. Значення повинне перевищувати поточний час щонайменше на 5 хвилин. Типове значення — 3 дні. |
isOneTimePay |
вказує, чи можна оплатити одне замовлення кілька разів. | Типове значення — True. |
additionalItems |
додаткові параметри | наприклад:
|
URLs | URL сторінки успішної оплати для редиректу клієнта. | failed — URL сторінки помилки для редиректу клієнта.
приклад параметрів, що передаються на url.success (без errorCode) і
|
RESPONSE
HEADERS
-------
BODY
{
"accountInfo": null,
"bankingDetails": null,
"amount": 1,
"amountMax": 4999,
"amountMin": 0.01,
"paymentInstrumentsTypes": [
{
"instrumentType": "EMoney",
"commission": 0,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"instrumentType": "RCard",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"storedCards": [],
"instrumentType": "Card",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": [
{
"instrumentId": 4211698,
"instrumentType": "Card",
"instrumentValue": null,
"alias": null,
"commission": 2,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
},
{
"walletStatus": "NotRegistered",
"instrumentType": "MasterPass",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"instrumentType": "LifeMoney",
"commission": 0.03,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": [
{
"instrumentId": 5098216,
"instrumentType": "LifeMoney",
"instrumentValue": null,
"alias": null,
"commission": 0.03,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
}
],
"forwardUrl": "https://easypay.ua/whitepage/81b14a73-730c-40d4-8064-ce1c10e0c53b",
"error": null
}
Параметр | Характеристика | Коментарій |
---|---|---|
accountInfo |
додаткова інформація про послугу | |
amount |
сума замовлення | |
amountMax |
максимальна сума платежу за послугою | |
amountMin |
мінімальна сума за послугою | |
forwardUrl |
URL сторінки оплати, для партнерів, у яких немає сертифікатів PCI DSS для обробки карткових даних. Або якщо у партнера немає власної платіжної сторінки. | |
paymentInstrumentsTypes |
список інструментів оплати. Інструмент RCard надається лише користувачам, які авторизовані в системі EasyPay. Можливі значення instrumentType |
Можливі значення instrumentType:
|
Холдування платежу можна здійснити, оплативши замовлення на сторінці оплати (перейти за forwardUrl), або вказавши в запиті createOrder інструмент оплати у userPaymentInstrument (див. Створення замовлення).
Клієнту відобразиться сторінка успішного платежу EasyPay, або сторінка, вказана в “urls”:{}.
Після спроби холдування платежу партнеру буде відправлено сповіщення, згідно з варіантом, вказаним в налаштуваннях сервісу Повідомлення про платіж.
Статус платежу необхідно перевірити методом orderState
Після успішного холдування необхідно викликати або unHoldOrder , або orderCancel
Якщо протягом повних 10 днів після холдування жоден з цих методів не буде викликаний, на 11-й день близько 05:00 платіж може бути відхилений емітентом, і кошти стануть доступні клієнту.
У транзакцію додається коментар: Автоматично відхилено через 10 днів. (SYSTEM ACCOUNT [dateTime])
Сповіщення партнеру при цьому не надсилається.
Розхолдування платежу
Розхолдування платежу
Якщо цей метод не буде викликано протягом 10 днів, кошти повертаються клієнту, а платіж у системі відхиляється.
Перед викликом цього методу необхідно здійснити холдування транзакції
POST /api/merchant/unHoldOrder
REQUEST HEADERS
'PartnerKey: easypay-test'
'locale: ua'
'AppId: a5806a5f-dbb8-496a-a23f-aab6d2fcbce1'
'PageId: 2ce7dba6-4600-456e-b9c8-f13cacf1c85d'
'Sign: e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4='
REQUEST BODY
{
"transactionId":955537573,
"orderId":"hold_4",
"serviceKey":"MERCHANT-TEST",
"amount": 1.2
}
RESPONSE
{
"paymentState": "accepted",
"error": null
}
Опис параметрів запиту
Параметр | Характеристика | Коментарій |
---|---|---|
transactionId |
унікальний номер платежу в системі EasyPay | |
orderId |
унікальний ідентифікатор замовлення в системі партнера | |
amount |
необов’язковий параметр, торгова сума, яку слід списати з картки. | Різниця повернеться клієнту на картку протягом 1–2 днів, залежно від регламенту банку |
Опис параметрів відповіді
Параметр | Характеристика | Коментарій |
---|---|---|
paymentState |
статус платежу | Можливі paymentState:
• accepted - платіж успішний (кінцевий статус) • pending - платіж в обробці (некінцевий статус) • declined - платіж відхилений (кінцевий статус) • none - платіж не знайдено |
Для платежів з 2DS переадресація на сторінку банку-емітента не відбувається, і користувач відразу отримує статус платежу.
Після спроби розхолдування платежу партнеру буде надіслано сповіщення згідно з варіантом, вказаним в налаштуваннях сервісу Повідомлення про платіж
Статус платежу необхідно перевіряти методом orderState
Параметри BrowseInfo при 3DS оплаті
Параметри BrowseInfo при 3DS оплаті
У зв'язку з переходом банків - екваєрів на модель роботи 3D Secure 2.x, при створенні замовлення з одночасною передачею інструменту оплати в запиті (карта, токен карти, токен Apple / Google Pay), необхідно передавати додаткові параметри пристрою (браузера) клієнта в заголовках і в тілі запиту createOrder, у прикладі вони виділені:
POST /api/merchant/createOrder
HEADERS
"appId: b15c4b64-8964-4c80-852e-df59a0e0d9b6",
"pageId: 607514b8-1da5-490a-bdf3-0c6883131625",
"partnerKey: easypay-test",
"sign: XJ3roGhTLwAZXigBp/iVRdsXlZYdTSen3xSM+29GaRg=",
"Content-Type:application/json",
"AcceptHeader:*/*",
"User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
BODY
"order":{ "serviceKey":"MERCHANT-TEST", "orderId":"test_3ds2x", "additionalItems":{ "Merchant.UrlNotify":"http://url.noti.fy" }, "description":"Easy test payment", "amount":"1" }, "userPaymentInstrument":{ "instrumentType":"Card", "pan":"4444444444444444", "expire":"0599", "cvv":"123" }, "browserInfo":{ "colorDepth":"24", "screenHeight":"824", "screenWidth":"1536", "language":"uk-UA", "javaEnabled":"false", "javascriptEnabled": "true", "timeZone":"-180" }
Параметри
Параметр | Характеристика |
---|---|
AcceptHeader:*/* |
передавайте без змін |
User-Agent |
передавайте клієнтський User-Agent |
Приклад, як збирати дані на JS:
getBrowserInfo() {
let browserInfoModel = {};
browserInfoModel.colorDepth = window.screen.colorDepth.toString();
browserInfoModel.screenHeight = window.screen.height.toString();
browserInfoModel.screenWidth = window.screen.width.toString();
browserInfoModel.language = window.navigator.language;
browserInfoModel.javaEnabled = window.navigator.javaEnabled();
browserInfoModel.timeZone = (new Date()).getTimezoneOffset().toString();
return browserInfoModel;
}
Якщо все передано правильно, то отримайте відповідь як нижче у прикладі "Якщо передано userPaymentInstrument (для випадку з 3DSecure)", або помилку оплати з картки, наприклад, "Недостатньо коштів". У випадку, якщо додаткові параметри передані неправильно, отримайте помилку платіжного сервісу, наприклад:
"errorCode":"PAYMENT_PUMB_SERVICE_FAILURE",
"errorMessage":"Технічна помилка екваєра. Зверніться до служби підтримки EasyPay, або спробуйте пізніше"
Відповідь (RESPONSE):
header:
відсутній
body:
{
"accountInfo": null,
"bankingDetails": null,
"amount": 1,
"amountMax": 4999,
"amountMin": 0.01,
"paymentInstrumentsTypes": [
{
"instrumentType": "EMoney",
"commission": 0,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"instrumentType": "RCard",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"storedCards": [],
"instrumentType": "Card",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": [
{
"instrumentId": 4211698,
"instrumentType": "Card",
"instrumentValue": null,
"alias": null,
"commission": 2,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
},
{
"walletStatus": "NotRegistered",
"instrumentType": "MasterPass",
"commission": 2,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": []
},
{
"instrumentType": "LifeMoney",
"commission": 0.03,
"amountMin": 0.01,
"amountMax": 4999,
"userPaymentInstruments": [
{
"instrumentId": 5098216,
"instrumentType": "LifeMoney",
"instrumentValue": null,
"alias": null,
"commission": 0.03,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
}
],
"forwardUrl": https://easypay.ua/whitepage/81b14a73-730c-40d4-8064-ce1c10e0c53b,
"error": null,
}
Якщо передано userPaymentInstrument (для випадку з 3DSecure):
{
"paymentState":"WaitVerify",
"action":"https://merchantapi.easypay.ua/api/payment/redirect/4df828bf-379b-4e88-8868-f667f12d74a9",
"actionContent":"<html><head></head><body><form action='https://acs.monobank.com.ua/PaReqVISA.jsp' method='post' id='submitForm'><input type='hidden' name='PaReq' value='eJxVUsluwjAQ/RWUY6VgO2RFg1FoqJpDUgThwNF1XAglS7NUpF9fm4alt3nzxvNm3hjm5/w0+hZ1k5XFTCNjrI1Ewcs0K/YzbZu86K42p5AcaiGCjeBdLShEomnYXoyydKY5mGNuWh966mKmm6lH9HcHY91zLeZMmGkT19EorPy1+KIwCFGpMzYAXaHsWPMDK1oKjH8twpiaBBumBWiAkIs6DCgh9oQ4rmsRW2pgQH9pKFgu6NLf7Fb+7ikIN8k6XGyT8C0GdKGAl13R1j21zQmgK4CuPtFD21bNFCHBmr5i/bhjCJAiAN2HWnUqamSjc5bS+Mj7+Pg5iY5LIwp8HCe7nyjZ4igJZ4BUBaSsFdTABsYecUfEmxIyteQ6lzywXE1AidpgiKFSEv4D8ZgA6Xstz9JTz5XUDYE4V2UhZIU08xYDus/7/Kos5a0yz7Kx6dgWNpStl5R6n0knDBNblwYKAFKP0HAxNBxbRv8+wS+7NLXc' /><input type='hidden' name='TermUrl' value='https://merchantapi.easypay.ua/api/payment/confirm/185ff3c7-8daa-4715-af1a-23f7554d19bb,0e101596-2a6a-4a0e-92e2-dac1e7a5c69d,-1' /><input type='hidden' name='MD' value='ee6eda7e-6252-41af-a696-825e85b34878' /></form><script>document.getElementById('submitForm').submit();</script> </body></html>",
"actionType":"FormRedirect",
"status":"Need3Ds", "alternativeRedirectUrl":"https://merchantapi.easypay.ua/api/payment/altredirect/00f9befe-a200-4e4d-ae27-0a4bdbc443fc",
"transactionId":860094566,
"retrievalReferenceNo":null,
"responseItems":{
"SessionId":"a9692063-2db5-4d25-8a66-e62b4476d1e4",
"MerchantOpertion":"CheckPaymentOperationOrder",
"Operation":"CheckPayment",
"BankingDetails":""
},
"error":null
}
Якщо передано userPaymentInstrument (для випадку без 3DSecure):
{
"redirectUrl":null,
"action":null,
"paymentState":"Confirmed",
"status":"Done",
"actionType":"UrlRedirect",
"transactionId":847870521,
"retrievalReferenceNo":null,
"responseItems": null,
"error":null
}
Опис параметрів
Параметр | Характеристика | Коментарій |
---|---|---|
accountInfo |
додаткова інформація про послугу | Якщо параметр відсутній, використовується значення ServiceKey з тіла запиту CreateOrder. |
amount |
сума замовлення | Якщо параметр відсутній, використовується значення OrderId, передане в тілі запиту CreateOrder. |
amountMax |
максимальна сума платежу за послугою | |
amountMin |
мінімальна сума за послугою | |
forwardUrl |
URL сторінки оплати, для партнерів які не мають сертифікатів PCI DSS для обробки карткових даних. Або якщо партнер не має платіжної сторінки. | на сторінці оплати можемо відключати елементи інтерфейсу:
- логотип EasyPay можемо приховувати - лічильник часу, що залишився до оплати, може бути відображений/прихований - поле "Призначення" (можемо вимкнути, або за замовчуванням зробити відкритим/закритим) - рядок з логотипом партнера та назвою можемо приховати - поле введення імейл сховати / відобразити - рядок з "Номер замовлення" приховати/показати |
paymentInstrumentsTypes |
список інструментів оплати. Інструменти Emoney, vcard та RCard видаємо тільки для користувачів, які авторизовані в системі EasyPay. |
Можливі значення instrumentType
|
3DSecure / mobile payments case:
Якщо передано userPaymentInstrument (для випадку з 3DSecure):
{
"paymentState":"WaitVerify",
"action":"https://merchantapi.easypay.ua/api/payment/redirect/4df828bf-379b-4e88-8868-f667f12d74a9",
"actionContent":"<html><head></head><body><form" action="https://acs.monobank.com.ua/PaReqVISA.jsp' method='post' id='submitForm'><input type="hidden" name="PaReq" value='eJxVUsluwjAQ/RWUY6VgO2RFg1FoqJpDUgThwNF1XAglS7NUpF9fm4alt3nzxvNm3hjm5/w0+hZ1k5XFTCNjrI1Ewcs0K/YzbZu86K42p5AcaiGCjeBdLShEomnYXoyydKY5mGNuWh966mKmm6lH9HcHY91zLeZMmGkT19EorPy1+KIwCFGpMzYAXaHsWPMDK1oKjH8twpiaBBumBWiAkIs6DCgh9oQ4rmsRW2pgQH9pKFgu6NLf7Fb+7ikIN8k6XGyT8C0GdKGAl13R1j21zQmgK4CuPtFD21bNFCHBmr5i/bhjCJAiAN2HWnUqamSjc5bS+Mj7+Pg5iY5LIwp8HCe7nyjZ4igJZ4BUBaSsFdTABsYecUfEmxIyteQ6lzywXE1AidpgiKFSEv4D8ZgA6Xstz9JTz5XUDYE4V2UhZIU08xYDus/7/Kos5a0yz7Kx6dgWNpStl5R6n0knDBNblwYKAFKP0HAxNBxbRv8+wS+7NLXc' /><input type='hidden' name='TermUrl' value='https://merchantapi.easypay.ua/api/payment/confirm/185ff3c7-8daa-4715-af1a-23f7554d19bb,0e101596-2a6a-4a0e-92e2-dac1e7a5c69d,-1' /><input type='hidden' name='MD' value='ee6eda7e-6252-41af-a696-825e85b34878' /></form><script>document.getElementById('submitForm').submit();</script> </body></html>",
"actionType":"FormRedirect",
"status":"Need3Ds", "alternativeRedirectUrl":"https://merchantapi.easypay.ua/api/payment/altredirect/00f9befe-a200-4e4d-ae27-0a4bdbc443fc",
"transactionId":"860094566",
"retrievalReferenceNo":"null",
"responseItems":{
"SessionId":"a9692063-2db5-4d25-8a66-e62b4476d1e4",
"MerchantOpertion":"CheckPaymentOperationOrder",
"Operation":"CheckPayment",
"BankingDetails":""
},
"error":null
}
Якщо передано userPaymentInstrument (для випадку без 3DSecure):
{
"redirectUrl":null,
"action":null,
"paymentState":"Confirmed",
"status":"Done",
"actionType":"UrlRedirect",
"transactionId":847870521,
"retrievalReferenceNo":null,
"responseItems": null,
"error":null
}
Опис параметрів
Параметр | Характеристика |
---|---|
paymentState |
|
status |
|
actionType |
тип наступної дії:
|
actionContent |
"<html>...</html>" - html форма сторінки банку для введення коду 3DS. Сформувати сторінку з коду та відкрити її клієнту. Після підтвердження платежу відбудеться 302-й редирект на ваші "urls" із запиту createOrder, або на фінальну сторінку EasyPay |
transactionId |
номер транзакції в EasyPay |
2DSecure case:
Параметр | Характеристика |
---|---|
paymentState |
"Confirmed" та "status": "Done" - платіж пройшов успішно. При інших значеннях необхідно перевірити статус платежу (Перевірка статусу платежу) |
status |
"Done" -платіж завершено, додаткові дії не потрібні. При "paymentState":
|
transactionId |
номер транзакції до EasyPay |