Платіжний шлюз Portmone.com
Терміни та визначення
| Термін | Визначення |
|---|---|
| Мерчант, Інтернет-магазин або Партнер | Організація, що уклала договір з Portmone.com про надання послуг з приймання платежів |
| Покупець, Клієнт | Відвідувач Інтернет-магазину Мерчанта з метою ознайомлення з асортиментом товарів (послуг) та здійснення покупки |
| Картка, Платіжна картка | Платіжні картки міжнародних платіжних систем Visa, Mastercard та Національної платіжної системи ПРОСТІР |
| Авторизація | Процес надання прав доступу або інших повноважень Покупцеві, програмі або процесу |
| Рекурентні платежі | Автоматичні платежі (не потребують участі клієнта та повторного введення реквізитів картки), що здійснюються за згодою клієнта |
| Токен | Цифровий ідентифікатор картки, що генерується при першій операції і далі використовується для швидкої оплати. Токен може використовуватись виключно для повторення аналогічної транзакції, що й при першій оплаті |
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| CVV2/CVC2 | CVV2 (Card Verification Value 2) – тризначний код перевірки дійсності картки платіжної системи Visa. Платіжна система Mastercard має аналогічний код перевірки дійсності – CVC2 (Card Validation Code 2) |
| Банк-еквайр | Банк, що організовує точки приймання банківських карток (термінали, банкомати) та здійснює весь комплекс фінансових операцій, пов'язаних з виконанням розрахунків і платежів за банківськими картками в цих точках |
| Банк-емітент банківських карток | Банк, що є учасником платіжної системи та здійснює випуск (емісію) та обслуговування банківських карток |
| 3-D Secure | 3-D Secure – це протокол, який використовується для забезпечення додаткового рівня безпеки онлайн-платежів з використанням банківських карток |
| IBAN | Міжнародний номер банківського рахунку (англ. International Bank Account Number) |
| МПС | Міжнародна платіжна система |
1. Технологія приймання оплат
Опис механізму приймання оплат платіжними картками на Інтернет-сайті магазину:
- Покупець обирає товар на сайті (або у мобільному додатку) Магазину, формує замовлення та обирає форму оплати за платіжними картками.
- Магазин переадресує Покупця на авторизаційний сервер системи Portmone.com, з передачею ряду необхідних параметрів (ідентифікатор партнера у системі Portmone.com, номер замовлення, його сума тощо).
- Авторизаційний сервер Portmone.com встановлює з Покупцем з'єднання за захищеним протоколом (TLS 1.2), перевіряє дані, що отримані від Магазину.
- Сайт Portmone.com приймає від Покупця параметри його платіжної картки та забезпечує авторизацію картки.
- При використанні верифікації Картки за технологією 3-D Secure Portmone.com спрямовує Клієнта на сайт банку-емітенту Картки для підтвердження транзакції.
- Запит на авторизацію передається через закриті банківські мережі банку-емітенту Карти Покупця або процесинговому центру, що уповноважений банком-емітентом.
- Банк передає авторизаційному серверу Portmone.com позитивний результат авторизації.
- Авторизаційний сервер Portmone.com перевіряє криптографічну цілісність інформації, що отримана, та вносить інформацію до бази даних.
- Portmone.com переадресовує Клієнта на сторінку Інтернет-магазину для підтвердження успішної оплати.
- Магазин перевіряє статус транзакції у системі Portmone.com та відпускає товар (надає послугу).
- Portmone.com у зазначені в договорі терміни здійснює перерахування коштів на рахунок Магазину (за мінусом комісії за еквайринг) одним платежем, що покриває всі транзакції за вказаний день.
- При неуспішній авторизації картки (відмові у авторизації):
- Банк передає авторизаційному серверу Portmone.com відмову від проведення платежу.
- Авторизаційний сервер Portmone.com перевіряє криптографічну цілісність інформації, що отримана, та вносить інформацію до бази даних.
- Portmone.com переадресовує запит на сторінку Інтернет-магазину для неуспішної оплати.
- При усп ішній оплаті на сторінку Інтернет-магазину передається методом POST номер сплаченого замовлення та дані платежу.
- Інтернет-магазин повинен додатково проконтролювати статус та суму замовлення одним з методів, що наведені у розділі 8 "Отримання результатів авторизації".
2. Тестовий режим роботи
Тестовий режим роботи платіжного шлюзу означає, що система Portmone.com виконує усі перевірки коректності введених даних від Інтернет-магазину та його клієнта, формує замовлення, але авторизація платіжної картки не виконується. При цьому шлюз може видавати бажану відповідь (успішну або неуспішну), в залежності від того, що необхідно співробітникам Інтернет-магазину, які займаються підключенням.
Для того, щоб увімкнути чи вимкнути тестовий режим платіжного шлюзу, необхідно направити відповідного листа з зареєстрованої адреси електронної пошти менеджерам Portmone.com по співпраці з Інтернет-магазинами на адре су [email protected].
Система Portmone.com надає партнерам два варіанти тестування:
1. Тест успішної оплати
Для отримання успішної відповіді на стандартній сторінці оплати Portmone.com необхідно ввести такі реквізити платіжної картки:
Номер картки: 4444333322221111 Термін дії: Будь-яка дата не раніше поточного дня. CVV2-код: Будь-який
2. Тест неуспішної оплати
Для отримання помилки на стандартній сторінці оплати Portmone.com необхідно ввести такі реквізити платіжної картки:
Номер картки: 4111111111111111 Термін дії: Будь-яка дата не раніше поточного дня. CVV2-код: Будь-який
Важливо! Перед запуском в роботу системи приймання платежів переконайтеся, що тестовий режим відключений!
3. Оплата замовлення
3.1. POST запит
Опис:
Для приймання оплат за Платіжними картками необхідно передати запит методом POST на сторінку платіжного шлюзу – https://www.portmone.com.ua/gateway/.
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "3.1 Запит оплати замовлення методом POST" для вивчення структури запиту.
Опис параметрів запиту:
| Параметр | Опис | Обов’язковий | Значення |
|---|---|---|---|
| payee_id | Ідентифікатор Інтернет-магазину | Так | Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com |
| shop_order_number | Номер замовлення (рахунку), що сплачується, у Інтернет-магазині. До 120 символів. Номер рахунку повинен бути унікальним у межах одного замовлення. Якщо замовлення з цим номером рахунку вже було сплачене, система Portmone.com відхилить транзакцію | Ні | До 120 символів |
| bill_amount | Сума замовлення. Валюта – гривні. Дробова частина відокремлюється символом крапки “.” | Так | Наприклад: 1.50 |
| bill_currency | Валюта проведення платежу | Ні | Можливі значення: UAH, USD, EUR, GBP, PLN, KZT (значення без задання – UAH) |
| description | Коментар до замовлення/ опис призначення оплати | Ні | До 250 символів |
| success_url | Адреса Інтернет-магазину (внутрішній URL мобільного додатку), на яку буде спрямовано Клієнта після успішного завершення платежу. Після успішної оплати замовлення на цю адресу методом POST Portmone.com надішле номер замовлення shop_order_number та дані платежу. За фактом виклику цієї сторінки на сайті Інтернет-магазину можна виконати звірення статусу і суми транзакції в системі Portmone.com. Нижче описані ці процедури (див. розділ 8 «Отримання результатів авторизації») | Ні | Наприклад: http://example.com/success.html |
| failure_url | Адреса Інтернет-магазину, на яку буде спрямовано Клієнта у разі скасування оплати | Ні | Наприклад: http://example.com/failure.html |
| lang | Мова інтерфейсу платіжної системи | Ні | uk – українська мова, en – англійська, |
| encoding | Кодування | Ні | Без задання – UTF-8 |
| preauth_flag | Встановлює режим преавторизації, коли кошти тільки блокуються на картці клієнта, але фінансового списання з рахунку Клієнта не відбувається | Ні | "Y" – вмикає режим преавторизації, "N" – вимикає режим (значення без задання — "N") |
| attribute1-4 | Службове поле | Ні | Заповнюється на розсуд компанії |
| attribute5 | Використовується для передачі параметрів розщеплення платежу (див. розділ 7 «Розщеплення платежу») | Ні | Заповнюється у форматі: Desc1:payeeID1;amount1; Desc2:payeeID2;amount2; де Desc1 – опис замовлення для першої компанії-одержувача, payeeID1 – ID першої компанії-одержувача, amount1 – сума, яка повинна піти на першу компанію, Desc2 – опис замовлення для другої компанії-одержувача, payeeID2 – ID другої компанії-одержувача, amount2 – сума, яка повинна піти на другу компанію. Кількість компаній для розщеплення обмежена тільки довжиною рядку (до 500 символів) |
| exp_time | Встановлює інтервал, протягом якого замовлення може бути оплачене. Якщо значення параметру було передане, то з моменту виклику платіжної сторінки показується зворотний відлік, який видно Клієнту на сторінці оплати. По закінченню часу на оплату рахунок переходить в статус "REJECTED" і оплатити його неможливо | Ні | Заповнюється в секундах |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так | |
| signature | Підпис запиту | Так |
Структура відповіді:
Будь ласка, зверніться до "3.1 Приклад відповіді шлюзу у разі успішного здійснення платежу для запиту методом POST" для вивчення структури відповіді.
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| SHOPORDERNUMBER | Номер замовлення (рахун ку) у системі Інтернет-магазину. До 128 символів |
| APPROVALCODE | Код авторизації |
| BILL_AMOUNT | Передана у запиті сума транзакції |
| TOKEN | Значення Токену для подальших оплат |
| RESULT | Результат виконання операції (у разі успіху = 0) |
| CARD_MASK | Маска Картки платника |
| ATTRIBUTE1 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE2 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE3 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE4 | Службове поле, заповнюється на розсуд компанії |
| RECEIPT_URL | Посилання для отримання квитанції |
| LANG | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| DESCRIPTION | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| ERRORIPSCODE | Код помилки, якщо токен Visa не був створений |
| ERRORIPSMESSAGE | Текст помилки, якщо токен Visa не був створений |
3.2. Запит у форматі JSON
Опис:
Для проведення оплати необхідно надіслати запит на URL: https://www.portmone.com.ua/gateway/.
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "3.2 Запит оплати замовлення у форматі JSON" для вивчення структури запиту.
Параметри для формування JSON-структури запиту:
- payee – блок, що необхідний для ідентифікації партнера
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| login | Логін компанії. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| signature | Підпис запиту | Так |
| displayMessage | Відображення інформації на платіжній сторінці для клієнта:<font style=\"font-size:14px;\">Hello</font> %username% ! | Ні |
| shopSiteId | Цифровий ідентифікатор каналу продажу | Ні |
- order – блок, що містить опис платежу
| Параметр | Опис | Обов’язковий |
|---|---|---|
| description | Опис платежу (коментар до замовлення/призначення оплати). Максимальна кількість символів 250 | Ні |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера. Максимальна кількість символів 128 | Ні |
| billAmount | Сума платежу | Так |
| successUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта після успішної оплати. Максимальна кількість символів 250 | Ні |
| failureUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта у разі скасування оплати. Максимальна кількість символів 250 | Ні |
| preauthFlag | Ознака преавторизації платежу (значення "Y" вказує на те, що ця оплата здійснюється з використанням процедури преавторизації (див. розділ 6 «Платежі з преавторизацією»), значення "N" – звичайна оплата без преавторизації) | Ні |
| preauthConfirm | Дата автоматичного списання заблокованих коштів для платежів з преавторизацією. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація підтверджується автоматично). Не може бути менше поточної дати. | Ні |
| preauthReject | Дата автоматичного скасування преавторизації. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація скасовується автоматично). Не може бути менше поточної дати. | Ні |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH | Ні |
| expTime | Встановлює інтервал, протягом якого замовлення може бути оплачене. Якщо значення параметру було передане, то з моменту виклику платіжної сторінки показується зворотний в ідлік, який видно Клієнту на сторінці оплати. По закінченню часу на оплату рахунок переходить в статус "REJECTED" і оплатити його неможливо | Ні |
| encoding | Кодування (кодує текст запиту з встановленого кодування у UTF-8) | Ні |
| attribute1 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute2 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute3 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute4 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute5 | Використовується для передачі параметрів розщеплення платежу (див. розділ 7 «Розщеплення платежу»). Максимальна кількість символів 500 | Ні |
- paymentTypes – дозволяє обрати способи проведення платежів (Y – вмикати, N – не вмикати). Якщо параметри не задані, тоді викорис товуються способи платежів, що закріплені за Інтернет-магазином у налаштуваннях Portmone.com, або вмикаються два основні способи проведення платежів: "card", "portmone".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| card | Оплата Карткою | Ні |
| portmone | Оплата через гаманець Portmone.com | Ні |
| token | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| privat | Оплата через систему LiqPay, з вибором картки з Інтернет-банкінгу Приват24. Зверніть увагу! При оплаті через Приват24 функціонал преавторизації не працює | Ні |
| gpay | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay | Ні |
| createtokenonly | Створення Токену для проведення платежів за Токеном (у разі активації цього параметру, інші способи не відображаються). Параметр надає можливість отримати Токен Картки без проведення реальної оплати (на рахунку блокується 1 грн, яка повертається протягом 30 хвилин). Підходить для звичайних оплат на користь Інтернет-магазину (див. розділ 4 «Оплата замовлення з використанням платіжного токену»), а також для подальшого використання у рамках платежів з картки на картку (див. розділ 5 «Переказ з картки на картку») | Ні |
| gpayonly | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Оплатити через GPay") | Ні |
| applepay | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay | Ні |
| applepayonly | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Apple Pay") | Ні |
| kyivstar | Оплата з балансу мобільного рахунку Київстару (тільки для передплачених номерів) | Ні |
| installment | Розстрочка платежу | Ні |
| link | Оплата методом BankPay (через застосунок Банка платника). Метод працює за умови передачі таких параметрів: expTime та "showEmail": "Y" | Ні |
Зверніть увагу! Через внутрішні політики безпеки Google Pay та Apple Pay, при відкритті платіжної сторінки у WebView, гаманці
Google PayтаApple Payможуть працювати нестабільно.
Для коректної роботи рекомендуємо пряму інтеграцію Google Pay та Apple Pay У разі наявності застосунку рекомендуємо інтегрувати SDKiOS, SDKAndroid
-
installmentPlan – параметри розстрочки платежу (див. розділ 3.7 «Розтермінування»).
-
autopayment – цей блок дозволяє налаштувати функціонал автоматичних оплат.
Функціонал автоматичних оплат дає можливість Клієнтам підписатись на автоматичні списання коштів за графіком (щомісячно/щоквартально/щопівроку/щороку). Партнер може керувати параметрами підписки самостійно або надати можливість налаштування параметрів автоматичної оплати Клієнту.
Для початку роботи з автоматичними платежами Партнеру необхідно отримати credentials в Особистому кабінеті.
Зверніть увагу! При зміні паролю необхідно сформувати
credentialsзаново.
Після налаштування:
-
Буде створено підписку на виконання автоматичних оплат з Картки Клієнта. Portmone.com самостійно відстежує та проводить платіж. Клієнт може відключити послугу, звернувшись до підтримки Portmone.com або до співробітника Інтернет-магазину (Інтернет-магазин може самостійно видалити підписку Клієнта в Особистому кабінеті).
-
Всі наступні оплати будуть виконуватись на той же опис (
description), що і при першій оплаті. -
Номер замовлення для автоматичних оплат буде формуватись наступним чином:
Номер замовлення при першій оплаті_RECURENT_Дата автоматичного списання
| Параметр | Опис | Обов’язковий |
|---|---|---|
| show | Можливість для клієнта бачити на сторінці оплати деталі підписки на автоматичну оплату. Приймає значення: Y – клієнт може перейти на окрему сторінку та подивитись параметри підписки; N – клієнт не має можливості бачити деталі підписки (відображається тільки чекбокс "Зробити платіж регулярним") (див. мал. 1) | Ні |
| edit | Можливість для клієнта редагувати параметри автоматичної оплати. Приймає значення: Y – при переході на сторінку деталей підписки всі параметри можна редагувати, є можливість зберегти налаштування (див. мал. 2); N – відображаються параметри автоматичної оплати, що передані Інтернет-магазином, без можливості редагувати | Ні |
| settings | Блок параметрів для налаштування автоматичної оплати | Ні |
| credentials | Параметри авторизації | Так |
| changeCheckboxState | Значення автоплатежу Y | Так |
| defaultCheckboxState | Приймає значення: Y – чекбокс "Зробити платіж регулярним" автозаповнений; N – клієнт самостійно заповнює чекбокс "Зробити платіж регулярним" | Ні |
Структура блоку settings:
| Параметр | Опис | Обов’язковий |
|---|---|---|
| period | Періодичність автоматичних списань. Приймає наступні значення: 1 – щомісячно, 2 – щоквартально, 3 – щопівроку, 4 – щороку | Так |
| payDate | День проведення автоматичного списання. Приймає значення від 1 до 28 | Ні |
| startDate | Дата початку автоматичних списань. Передається у форматі: DD.MM.YYYY. Якщо параметр не переданий, автоматично проставиться вчорашня дата | Ні |
| endDate | Дата закінчення автоматичних списань. Передається у форматі: DD.MM.YYYY. Якщо параметр не переданий, автоматично проставиться дата startDate + 3 роки (якщо startDate не задано – поточна дата платежу) | Ні |
| amount | Сума автооплати. При наявності дробової частини використовується розділювач крапка (".") | Так |