Параметри BrowseInfo при 3DS оплаті

Матеріал з apidocs
Версія від 12:37, 14 серпня 2025, створена Nozdrina.viktoriia (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до: навігація, пошук

Merchant API

Головна сторінка

(Токенізація з передачею даних картки у запиті

У зв'язку з переходом банків - екваєрів на модель роботи 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

  • Emoney – гаманець EasyPay
  • Card – платіжна картка
  • RCard – платіжна картка, підв'язана в системі EasyPay
  • ApplePay – оплата через  ApplePay
  • GooglePay – оплата через GooglePay
  • LifeMoney – мобільні гроші Лайф.
  • KsMoney –  мобільні гроші Київстар
  • VodafoneMoney – мобільні гроші Водафон
  • картки лояльності Fishka


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
  • Confirmed - платіж підтверджений (кінцевий статус, якщо "status": "done")
  • WaitConfirm - платіж у статусі "обробляється", необхідно додатково запросити фінальний статус платежу
  • WaitVerify - від клієнта очікується підтвердження (наприклад, якщо "status": "Need3Ds" - необхідно пройти перевірку 3D Secure)
status
actionType тип наступної дії:
  • "FormRedirect" -  необхідно створити сторінку (форму) з html-коду, який передано у параметрі "actionContent" :"<html>...</html>", відкрити її клієнту, наприклад, для проходження ним 3D-secure перевірки. Альтернативним варіантом є переадресація клієнта за посиланням параметра "alternativeRedirectUrl".
  • Після проходження перевірки клієнт буде передресовано на фінальну сторінку EasyPay або на

"urls": {

"success": "string",

"failed": "string"

}

"None" - можливий при використанні інструменту гаманець ("instrumentType": "EMoney"), кошти успішно списані з гаманця, партнеру надсилається повідомлення про списання.
actionContent "<html>...</html>" - html форма сторінки банку для введення коду 3DS. Сформувати сторінку з коду та відкрити її клієнту. Після підтвердження платежу відбудеться 302-й редирект на ваші "urls" із запиту createOrder, або на фінальну сторінку EasyPay
transactionId номер транзакції в EasyPay


2DSecure case:

Параметр Характеристика
paymentState "Confirmed" та "status": "Done" - платіж пройшов успішно. При інших значеннях необхідно перевірити статус платежу (Перевірка статусу платежу)
status "Done" -платіж завершено, додаткові дії не потрібні. При "paymentState":
  • "Confirmed" - означає, що транзакція на стороні EasyPay прийнята (http - оповіщення успішно доставлено партнеру)
transactionId номер транзакції до EasyPay