MerchantAPI: відмінності між версіями
Немає опису редагування |
|||
Рядок 66: | Рядок 66: | ||
<p style="margin: 10px 0; border: 1px solid #d0f0c0; background-color: rgba(192, 255, 192, 0.5); padding: 10px; border-radius: 24px; font-family: monospace;"> | <p style="margin: 10px 0; border: 1px solid #d0f0c0; background-color: rgba(192, 255, 192, 0.5); padding: 10px; border-radius: 24px; font-family: monospace;"> | ||
<span style="background: linear-gradient(to right, #004d00, #00ff00); color: white; padding: 2px 6px; border-radius: 24px; border: 1px solid transparent; font-weight: bold;">POST</span><span>/api/system/createApp</span> | <span style="background: linear-gradient(to right, #004d00, #00ff00); color: white; padding: 2px 6px; border-radius: 24px; border: 1px solid transparent; font-weight: bold;">POST</span><span>/api/system/createApp</span> | ||
{ | |||
"headers": { | |||
"Content-Type": "application/json", | |||
"PartnerKey": "partnerName", | |||
"locale": "ua", | |||
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1", | |||
"PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d", | |||
"Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4=" | |||
}, | |||
"body": { | |||
"phone": "380501002030ws", | |||
"pan": "4874120123567889", | |||
"expire": "1222", | |||
"cvv": "012", | |||
"vсode": "123654" | |||
} | |||
} | |||
== QR MasterPass == | == QR MasterPass == | ||
Рядок 126: | Рядок 144: | ||
<p style="margin: 10px 0; border: 1px solid #d0f0c0; background-color: rgba(192, 255, 192, 0.5); padding: 10px; border-radius: 24px; font-family: monospace;"> | <p style="margin: 10px 0; border: 1px solid #d0f0c0; background-color: rgba(192, 255, 192, 0.5); padding: 10px; border-radius: 24px; font-family: monospace;"> | ||
<span style="background: linear-gradient(to right, #004d00, #00ff00); color: white; padding: 2px 6px; border-radius: 24px; border: 1px solid transparent; font-weight: bold;">POST</span><span>/api/merchant/tokenCard </span> | <span style="background: linear-gradient(to right, #004d00, #00ff00); color: white; padding: 2px 6px; border-radius: 24px; border: 1px solid transparent; font-weight: bold;">POST</span><span>/api/merchant/tokenCard </span><h2 style="color: #0033A0;">Можливі варіанти інструментів оплати</h2> | ||
<h2 style="color: #0033A0;">Можливі варіанти інструментів оплати</h2> | |||
===== Оплата <span style=" display: inline-block; padding: 4px 16px; border: 2px solid #0033A0; /* Темно-синій колір рамки */ background-color: #0033A0; /* Темно-синій фон */ color: white; /* Білий текст */ font-family: Arial, sans-serif; /* Шрифт */ font-weight: bold; /* Жирний шрифт */ border-radius: 24px; /* Закруглені краї */ text-transform: uppercase; /* Великі літери */ ">VISA</span> <span style=" display: inline-block; padding: 8px 20px; /* Збільшене відступи для однакового розміру */ border: 2px solid transparent; /* Прозора рамка для градієнту */ background: linear-gradient(to right, #FF5F00, #FFBF00); /* Градієнт від червоного до оранжевого */ color: white; /* Білий текст */ font-family: Arial, sans-serif; /* Шрифт */ font-weight: bold; /* Жирний шрифт */ border-radius: 24px; /* Закруглені краї */ text-transform: uppercase; /* Великі літери */ font-size: 16px; /* Однаковий розмір шрифта */ ">MasterCarD</span> ===== | ===== Оплата <span style=" display: inline-block; padding: 4px 16px; border: 2px solid #0033A0; /* Темно-синій колір рамки */ background-color: #0033A0; /* Темно-синій фон */ color: white; /* Білий текст */ font-family: Arial, sans-serif; /* Шрифт */ font-weight: bold; /* Жирний шрифт */ border-radius: 24px; /* Закруглені краї */ text-transform: uppercase; /* Великі літери */ ">VISA</span> <span style=" display: inline-block; padding: 8px 20px; /* Збільшене відступи для однакового розміру */ border: 2px solid transparent; /* Прозора рамка для градієнту */ background: linear-gradient(to right, #FF5F00, #FFBF00); /* Градієнт від червоного до оранжевого */ color: white; /* Білий текст */ font-family: Arial, sans-serif; /* Шрифт */ font-weight: bold; /* Жирний шрифт */ border-radius: 24px; /* Закруглені краї */ text-transform: uppercase; /* Великі літери */ font-size: 16px; /* Однаковий розмір шрифта */ ">MasterCarD</span> ===== |
Версія за 20:46, 28 серпня 2024
Загальні відомості
Протокол призначено для торговців, які є одержувачами платежів. Продавець підписує договір про прийняття платежів або анкету-акцепт до публічної оферти.
Щоб отримати платежі, ви можете використовувати web, мобільні версії сайтів, а також мобільні програми. У разі використання цього протоколу не здійснюється перевірка даних для ідентифікації замовлення або облікового запису. EasyPay завжди приймає дані, надіслані та створені продавцем.
--header 'Content-Type: application/json'
--header 'AppId: cd7fde18-15db-4d94-a91b-7cf8edd81209'
--header 'PageId: 3e7bf353-417a-410c-a22e-df8bdcccb760'
--header 'PartnerKey: easypay-test'
--header 'locale: ua'
--header 'Sign: bS+vPOwu1Sif1Iz47Cdh+z1RAi0s6X21C3uU0YNBNWE='
Параметр | Характеристика | Коментарій |
---|---|---|
PartnerKey |
унікальний ідентифікатор партнера (продавця) у системі EasyPay. | |
ServiceKey |
ідентифікатор сервісу торговця у системі EasyPay. | магазину чи послуги |
SecretKey |
секретний ключ для формування підпису | відомий лише торговцю та EasyPay |
AppId |
ідентифікатор торгової точки партнера | параметр валідний протягом 90 днів. Один і той же AppID може використовуватись для декількох платежів) |
PageId |
ідентифікатор сесії | параметр валідний протягом 20 хв. Для кожного запиту CreateOrder потрібно використовувати унікальний PageID |
Основні запити та відповіді
Реєстрація точки та створення сесії
Цей метод слід викликати, коли користувач вперше звертається до платіжної сторінки. Якщо браузер або пристрій змінюються, метод знову з'являється.
рррр
POST/api/system/createApp { "headers": { "Content-Type": "application/json", "PartnerKey": "partnerName", "locale": "ua", "AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1", "PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d", "Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4=" }, "body": { "phone": "380501002030ws", "pan": "4874120123567889", "expire": "1222", "cvv": "012", "vсode": "123654" } }
QR MasterPass
Для мерчантів, які мають пряму інтеграцію з MasterPass
Опис:
Оплата з гаманця MasterPass із використанням QR-коду.
{
"instrumentType": "QrMasterpass",
"commission": 0.0,
"amountMin": 1.00,
"amountMax": 14999.00,
"userPaymentInstruments": [
{
"instrumentId": 8499910,
"instrumentType": "QrMasterpass",
"instrumentValue": "00020101021252040000530398054034005802UA5909EasyPayUa6004Kiev64190002UK0109EasyPayUa80850017ua.mastercard.www010200020840703434032003434180702054456177041211109354874205020181500017ua.mastercard.www011720191111093548742020499996223030443590603391070410036304AF79",
"alias": null,
"commission": 0.0,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {
"OrderId": "4825209b-1caa-472e-b530-dc3e8efd541c"
}
}
]
}
Створення підпису
Формування підпису Sign (основний варіант для POST – запитів)
Sign = base64(sha256(secretKey+requestBody))
*requestBody - текст запиту у форматі json , ідентичний до EasyPay
Приклад на C#
Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(data)))
Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(data)))
Приклад на PHP
base64_encode(hash('sha256', ($secretKey.$requestbody), true))
base64_encode(hash('sha256', ($secretKey.$requestbody), true))
Робота з токенізованими картами
Токенізація карти
Метод призначений для токенізації (збереження) картки для ідентифікатора користувача під конкретним торговцем.
Токенізація з передачею даних картки у запиті (заборонено без PCI:DSS сертифікації мерчанта)
Перед викликом цього методу. Потрібно викликати один із методів:
- CreateApp (п. 2.1)
- CreatePage (п. 2.2)
POST/api/merchant/tokenCard
Можливі варіанти інструментів оплати
Оплата VISA MasterCarD
"paymentInstrumentsTypes": [
{
"storedCards": [],
"instrumentType": "Card",
"commission": 2.00,
"amountMin": 0.01,
"amountMax": 14000.00,
"userPaymentInstruments": [
{
"instrumentId": 4211698,
"instrumentType": "Card",
"instrumentValue": null,
"alias": null,
"commission": 2.00,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 200,
"additionalParams": {}
}
]
]
},
{
"instrumentType": "RCard",
"commission": 2.00,
"amountMin": 0.01,
"amountMax": 14000.00,
"userPaymentInstruments": []
},
Мобільні гроші КиївстарLifecellVodafone
{
"instrumentType": "KSMoney",
"commission": 0.0,
"amountMin": 0.01,
"amountMax": 14000.00,
"userPaymentInstruments": [
{
"instrumentId": 4958975,
"instrumentType": "KSMoney",
"instrumentValue": null,
"alias": null,
"commission": 0.0,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 1,
"additionalParams": {}
}
]
},
{
"instrumentType": "LifeMoney",
"commission": 0.03,
"amountMin": 0.01,
"amountMax": 6000.00,
"userPaymentInstruments": [
{
"instrumentId": 5098216,
"instrumentType": "LifeMoney",
"instrumentValue": null,
"alias": null,
"commission": 0.03,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
Картки лояльності Fishka
]
},
{
"instrumentType": "FishkaB2B",
"commission": 2.00,
"amountMin": 0.01,
"amountMax": 1000.00,
"userPaymentInstruments": []
},
{
"instrumentType": "FishkaB2C",
"commission": 2.00,
"amountMin": 0.01,
"amountMax": 1000.00,
"userPaymentInstruments": []
},
Оплата ApplePay GPAY
{
"instrumentType": "ApplePay",
"commission": 2.00,
"amountMin": 0.01,
"amountMax": 9999.00,
"userPaymentInstruments": [
{
"instrumentId": 10958126,
"instrumentType": "ApplePay",
"instrumentValue": null,
"alias": null,
"commission": 2.00,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams": {}
}
]
},
{
"instrumentType": "GooglePay",
"commission": 2.00,
"amountMin": 0.01,
"amountMax": 9999.00,
"userPaymentInstruments": [
{
"instrumentId": 10958137,
"instrumentType": "GooglePay",
"instrumentValue": null,
"alias": null,
"commission": 2.00,
"loyaltyCommission": null,
"actionsKeys": null,
"priorityIndex": 0,
"additionalParams":
{
"PublicKey": "BKdzipvJvJzcbTMm3dO0LEh1AXFr8qfSiPjwrI7vv9F6hqhDJB1M="
}
}
]
}
]