Платіжний шлюз 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 | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| clicktopay | Оплата за допомогою Visa Click to Pay | Ні |
| 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 | Сума автооплати. При наявності дробової частини використовується розділювач крапка (".") | Так |

Мал. 1 – приклад сторінки оплати без відображення деталей підписки на автоматичну оплату

Мал. 2 – приклад відображення параметрів автоматичної оплати з можливістю редагування
- priorityPaymentTypes – цей блок дозволяє керувати розміщенням способів проведення платежів на сторінці. При значенні 0 навпроти методу оплати – вкладка з методом оплати не вмикається, інше по мірі зростання: 1 – до початку списку, 2 – на другій позиції, 3 – третя і т. д.
Важливо! У
paymentTypesспосіб оплати повинен бути в значенні "Y", уpriorityPaymentTypes– мати цифрове значення, що відмінне від 0 ("0" – вимикає відображення на сторінці оплати).
- token – налаштування для роботи з Токеном (див. розділ 4 «Оплата замовлення з використанням платіжного токену»)
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Обов’язковий параметр для оплати за Токеном |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Обов’язковий параметр для оплати за Токеном |
| cardMask | Маска Картки | Обов’язковий параметр для оплати за Токеном |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Ні |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника (надсилаємо клієнту квитанцію про успішну оплату, не передаємо у відповідь на запит) | Ні |
| showEmail | "Y" або порожнє значення – вмикає відображення поля "e-mail" на сторінці оплати, "N" – приховує поле "e-mail" на сторінці оплати (значення без задання – "Y") | Ні |
В залежності від переданих значень параметрів emailAddress та showEmail можливі 4 варіанти відображення поля "e-mail" на сторінці оплати:
| Варіант | emailAddress | showEmail | Відображення на сторінці оплати |
|---|---|---|---|
| 1 | порожнє значення | Y | Відображається порожнє поле вводу e-mail |
| 2 | валідний | Y | Відображається попередньо заповнене поле вводу e-mail з можливістю редагування |
| 3 | порожнє значення | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною |
| 4 | валідний | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною. Однак e-mail, що переданий у запиті, обробляється і на нього надсилається квитанція про сплату |
- shipping – блок, що містить інформацію про доставку
Доставка "Нова Пошта"
Даний функціонал дозволяє оформити доставку "Нової Пошти".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| state | Y - підключається доставка, N - доставка вимкнена | Так |
| source | Назва служби доставки. Приймає значення novaposhta | Так |
Приклад масиву в запиті:
"shipping": {
"collect": {
"state": "Y",
"source": "novaposhta"
}
Щоб передзаповнити поля на сторінці оплати необхідно передати дані Клієнта в блоці payer
"payer": {
"lang": "uk",
"emailAddress": "[email protected]",
"showEmail": "Y",
"phoneNumber": "660000000",
"fullName": "Прізвище Ім'я"
}
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника (надсилаємо клієнту квитанцію про успішну оплату, не передаємо у відповідь на запит) | Так |
| showEmail | Приймає значення "Y" | Так |
| phoneNumber | Номер телефону Клієнта. Передавати у форматі 660000000 | Так |
| fullName | Прізвище та Ім'я Клієнта | Так |
Доступні 3 типи доставки:
- У відділення
- До поштомату
- Кур’єром
Поля “Місто”, “Вулиця”, “Відділення”, “Поштомат” є випадаючим списком з пошуком на сторінці оплати, пошук починається після введення 3 символів. Редагувати дані доставки можна натиснувши кнопку "назад"
Доставка "Укрпошта"
| Параметр | Опис | Обов’язковий |
|---|---|---|
| services | Найменування логістичних служб | Так |
| ukrposhta | Логістична служба | Так |
| deliveryTypes | Доступні способи доставки: W2D – доставка кур'єром на адресу одержувача; W2W – доставка до відділення | Так |
| senderClientId | Ідентифікатор магазину в системі логістичної служби. Створюється в Особистому кабінеті Мерчанта | Так |
| senderAddressId | Ідентифікатор адреси магазину в системі логістичної служби. Створюється в Особистому кабінеті Мерчанта | Так |
| senderPostCode | Поштовий індекс відправника | Так |
| type | Тип доставки відправлення. Можливі значення: STANDARD, EXPRESS | Так |
| parcelWeight | Вага відправлення. Вказується у грамах. Максимальне значення – 30000 | Так |
| parcelLength | Довжина найбільшої сторони відправлення (тільки цифри), вказується в сантиметрах | Так |
| parcelWidth | Ширина відправлення у сантиметрах | Так |
| parcelHeight | Висота відправлення у сантиметрах | Так |
| parcelDeclaredPrice | Заявлена ціна відправлення, вказується у гривнях | Так |
| parcelDescription | Опис відправлення | Ні |
| fragile | Позначка про крихкість посилки. Можливі значення: Y аб о N | Ні |
| checkOnDelivery | Позначка про огляд при отриманні. Можливі значення: Y або N | Ні |
| bees | Позначка, що відправляються бджоли. Можливі значення: Y або N | Ні |
| payer | Вказується платник за доставку. Попередньо встановлене значення: client | Так |
| sms | Повідомити клієнта про прибуття посилки за допомогою SMS-повідомлення. Можливі значення: Y або N | Ні |
| withDeliveryNotification | Повідомити клієнта за допомогою сервісу повідомлень служби доставки. Можливі значення: Y або N | Ні |
| enable | Увімкнути відображення форми оформлення доставки. Можливі значення: Y або N | Так |
| required | Оформлення доставки є обов'язковим. Можливі значення: Y або N | Так |
-
style – налаштування стилів сторінки оплати (див. розділ 3.3 «Управління зовнішнім виглядом сторінки оплати»).
-
goods – блок, що містить масив даних для фіскалізації.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| internalCode | Код продавця | Так |
| manufacturerCode | Код виробника | Ні |
| govClassificationCode | Код УКТЗЕД | Ні |
| name | Назва товару\послуги | Так |
| name_en | Назва товару\послуги EN | Ні |
| description | Опис товару\послуги | Ні |
| description_en | Опис товару\послуги EN | Ні |
| price | Ціна ( шт) | Так |
| quantity | Кількість | Так |
| uomCode | Одиниця виміру ( не обов'язково, за замовчуванням шт) | Ні |
| amount | Сума | Так |
| taxRateCodes | Цифровий код ставки податку (попередньо програмується у особистому кабінеті податвого агента). Якщо до товару потрібно застосувати декілька податків - вказати через кому | Так |
| descriptionUrl | Поcилання на опису товара | Ні |
| imageUrl | Посилання на картинку товару | Ні |
| barcode | Штрих-код товару |
Показати приклад JSON-структури блоку goods
{
"goods": [
{
"internalCode": "123456",
"manufacturerCode": "123456",
"govClassificationCode": "123456",
"name": "",
"name_en": "",
"description": "",
"description_en": "",
"price": "100",
"quantity": "2",
"uomCode": "",
"amount": "200",
"serviceFlag": "N",
"taxRateCodes": "1",
"descriptionUrl": "",
"imageUrl": "",
"barcode": "1234567890"
}
]
}
Структура відповіді:
Будь ласка, зверніться до "3.2 Приклад відповіді шлюзу у разі успішного здійснення платежу для запиту у форматі JSON" для вивчення структури відповіді.
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| SHOPORDERNUMBER | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| APPROVALCODE | Код авторизації |
| BILL_AMOUNT | Передана у запиті сума транзакції |
| TOKEN | Значення Токену для подальших оплат |
| RESULT | Результат виконання операції (у разі успіху = 0) |
| CARD_MASK | Маска Картки платника |
| ATTRIBUTE1 | Службове поле, заповнюється н а розсуд компанії |
| ATTRIBUTE2 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE3 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE4 | Службове поле, заповнюється на розсуд компанії |
| RECEIPT_URL | Посилання для отримання квитанції |
| LANG | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| DESCRIPTION | Коментар до замовлення / опис призначення оплати. До 250 символів |
| ERRORIPSCODE | Код помилки, якщо токен Visa не був створений |
| ERRORIPSMESSAGE | Текст помилки, якщо токен Visa не був створений |
3.3. Управління зовнішнім виглядом сторінки оплати
Зовнішній вигляд сторінки оплати можна налаштовувати за допомогою параметру style.
Опис полів параметру style
| Поле | Опис | Тип стилю сторінки (type), для якого може застосовуватись поле |
|---|---|---|
| type | Встановлює тип стилю для сторінки оплати: • portmone – значення без задання (стандартний стиль portmone.com, див. мал. 3); • brand – повна стилізація сторінки для партнера (див. мал. 4); • co-brand – логотип партнера на сторінці наведений разом з логотипом portmone.com (див. мал. 5); • light – версія для відображення у вигляді фрейму (див. мал. 6). Інструкцію з вбудовування платіжної сторінки у фрейм див. нижче | |
| logo | Містить полсилання на логотип партнера. Підтримує тільки посилання з https схемою. Формат зображення тільки SVG, PNG. Рекомендується використовувати зображення з мінімальним відступом сюжету від усіх країв | brand, co-brand |
| logoWidth | Параметр, що визначає ширину логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 300px | brand, co-brand |
| logoHeight | Параметр, що визначає висоту логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 50px (для формата PNG максимальна висота – 53px) | brand, co-brand |
| backgroundColorHeader | Встановлює колір секції header на сторінці. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| backgroundColorButtons | Встановлює колір кнопок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| colorTextAndIcons | Встановлює колір тексту та іконок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| borderColorList | Встановлює колір ліній у списку методів проведення платежів. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| bcMain | Визначає колір фону сторінок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| privatButtonPosition | У разі використання методу оплати "privat", цей параметр визначає розміщення кнопки Privat24 на платіжній формі. Розташування кнопки може бути задано одним із трьох варіантів: "top" (угорі платіжної форми), "middle" (посередині платіжної форми) або "bottom" (унизу платіжної форми). За замовчуванням використовується значення "bottom". | portmone, brand, light, co-brand |
Приклади варіантів відображення кнопки оплати Privat24
Показати приклад розміщення кнопки оплати Privat24 зверху сторінки

Показати приклад розміщення кнопки оплати Privat24 посередині сторінки

Показати приклад розміщення кнопки оплати Privat24 внизу сторінки

Інструкція з вбудовування платіжної сторінки у фрейм
Зверніть увагу! Через внутрішні політики безпеки Google Pay та Apple Pay, при відкритті платіжної сторінки у WebView, гаманці
Google PayтаApple Payможуть працювати нестабільно.
Для коректної роботи рекомендуємо пряму інтеграцію Google Pay та Apple Pay У разі наявності застосунку рекомендуємо інтегрувати SDKiOS, SDKAndroid
Для запуску IFRAME на сайті необхідно:
- На сторінці партнера необхідно організувати можливість надсилання запиту на проведення оплати, наприклад, вст авити форму наступного вигляду:
<form
action="https://www.portmone.com.ua/gateway/"
method="post"
target="myFrame"
>
<input
type="hidden"
name="bodyRequest"
value='{
"paymentTypes": {
"card": "Y",
"portmone": "Y",
"token": "N",
"clicktopay": "Y",
"createtokenonly": "N"
},
"priorityPaymentTypes": {
"card": "1",
"portmone": "2",
"token": "0",
"clicktopay": "1",
"createtokenonly": "0"
},
"payee": {
"payeeId": "1185",
"login": "",
"dt": "",
"signature": "",
"shopSiteId": ""
},
"order": {
"description": "Test Payment",
"shopOrderNumber": "SHP-00445401",
"billAmount": "10",
"attribute1": "1",
"attribute2": "2",
"attribute3": "3",
"attribute4": "4",
"attribute5": "",
"successUrl": "",
"failureUrl": "",
"preauthFlag": "N",
"billCurrency": "UAH",
"encoding": ""
},
"token": {
"tokenFlag": "N",
"returnToken": "N",
"token": "",
"cardMask": "",
"otherPaymentMethods": "Y",
"sellerToken": ""
},
"payer": {
"lang": "uk",
"emailAddress": "[email protected]"
},
"style": {
"type": "light",
"logo": "",
"backgroundColorHeader": "",
"backgroundColorButtons": "",
"colorTextAndIcons": "",
"borderColorList": "",
"bcMain": ""
}
}'
/>
<input type="hidden" name="typeRequest" value="json" />
<input type="submit" value="Portmone.com" />
</form>
Структуру та опис параметрів запиту можна подивитись у розділі 3.2 «Запит у форматі JSON».
Для відображення фрейму у стилі light необхідно задати полю type параметру style значення "light".
Параметр target форми п овинен вказувати на фрейм, в якому буде відображатись сторінка оплати (у наведеному вище прикладі це фрейм з ім'ям "myFrame").
- Додати у DOM-модель сторінки елемент IFRAME, вказавши йому парамeтр
nameзі значенням, ідентичним параметруtargetформи з попереднього пункту.
<div>
<iframe name="myFrame" width="50%" height="70%" frameborder="0"></iframe>
</div>
Параметри ширини та висоти фрейму можна налаштовувати за бажанням.
- Після надсилання запиту, відповідь буде відображено у вказаному фреймі.
Способи виведення сторінки оплати:

Мал. 3 – стандартний стиль Portmone.com

Мал. 4 – повна стилізація сторінки д ля партнера

Мал. 5 – логотип партнера на сторінці наведений разом з логотипом Portmone.com

Мал. 6 – версія для відображення у вигляді фрейму на сайті Інтернет-магазину
3.4. Платіжний віджет
Призначення: Платіжний віджет дозволяє приймати платежі без перенаправлення клієнта на окрему сторінку Portmone. Оплата відбувається на сайті мерчанта у зручному для користувача форматі.
Платіжний віджет підтримує два режими роботи:
- Модальне вікно (popup): після натискання кнопки відкривається окреме спливаюче вікно браузера з платіжною сторінкою Portmone.
- Вбудований фрейм (iframe): платіжна форма відображається безпосередньо на сторінці мерчанта у вбудованому iframe.
3.4.1 Оплата у модальному вікні (popup)
Доступність і обмеження: Немає обмежень.
Інтеграція платіжної кнопки: Для розміщення платіжної кнопки Portmone на сторінці Мерчанта необхідно визначити місце розташування кнопки на сторінці та вставити JavaScript код для підключення скрипта і ініціалізації віджета.
Після завантаження скрипту pg.min.js платіжна кнопка буде розміщена в тому блоці, в якому розміщений код для завантаження скрипту.
Приклад:
<div class="span4">
<script src="https://www.portmone.com.ua/r3/resources/pg/js/asset/pg.min.js?v=15092019"></script>
<script type="text/javascript" id="portmone-script">
var data = {};
var brand = {
height: "40px",
width: "150px",
buttoncolor: "#FF0000",
fontfamily: "Open Sans",
textcolor: "#FFF",
lang: "uk",
padding: "5px",
border: "1px solid grey",
fontsize: "14px",
closemodal: "Y",
};
PG.success(function (data) {
console.log(JSON.stringify(data));
});
PG.paymentData("gateway", data);
PG.brandButton(brand);
</script>
</div>
Брендування платіжної кнопки
Об'єкт brand відповідає за брендування кнопки «Оплатити», при натистканні якої відбувається виклик вікна оплати.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| height | Встановлює висоту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| width | Встановлює ширину кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| buttoncolor | Встановлює колір кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontfamily | Встановлює тип шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| textcolor | Встановлює колір шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| lang | Встановлює мову для відображення тексту кнопки “Сплатити”/ “Завантажити квитанцію”. Якщо інше не було задане, приймає значення uk – українська | Ні |
| padding | Встановлює значення полів навколо вмісту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| border | Дозволяє одночасно встановити товщину, стиль і колір рамки навколо кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontsize | Встановлює розмір шрифту. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| closemodal | Опція, що визначає, чи потрібно закриват и модальне вікно після здійснення платежу клієнтом. При значенні "N" вікно не закривається, клієнту відображається повідомлення про успішну оплату у модальному вікні. При значенні "Y" – вікно закривається та виконується передача даних платежу до функції обробки мерчанта. Значення без задання: Y | Ні |
Ініціалізація платіжного віджета:
Для ініціалізації віджета необхідно передати об’єкт data, який містить інформацію про продавця, параметри замовлення та методи оплати.
Приклад об’єкта data наведено у розділі "3.4.1 Приклад об’єкта data для режиму popup"
Опис параметрів об’єкту data:
- 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 | Сума платежу | Так |
| 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 | Використовується для передачі параметрів розщеплення платежу. Максимальна кількість символів 500. (див. розділ 7 «Розщеплення платежу») | Ні |
- paymentTypes – дозволяє обрати способи проведення платежів (Y – вмикати, N – не вмикати). Якщо параметри не задані, тоді використовуються способи платежів, що закріплені за Інтернет-магазином у налаштуваннях Portmone.com, або вмикаються два основні способи проведення платежів: "card", "portmone".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| card | Оплата Карткою | Ні |
| portmone | Оплата через гаманець Portmone.com | Ні |
| token | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| clicktopay | Оплата за допомогою Visa Click to Pay | Ні |
| privat | Оплата через систему LigPay, з вибором картки з Інтернет-банкінгу Приват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") | Ні |
| link | Оплата методом BankPay (через застосунок Банка платника). Метод працює за умови передачі таких параметрів: expTime та "showEmail": "Y" | Ні |
- priorityPaymentTypes – цей блок дозволяє керувати розміщенням способів проведення платежів на сторінці. При знач енні 0 навпроти методу оплати – вкладка з методом оплати не вмикається, інше по мірі зростання: 1 – до початку списку, 2 – на другій позиції, 3 – третя і т. д.
Важливо! У
paymentTypesспосіб оплати повинен бути в значенні "Y", уpriorityPaymentTypes– мати цифрове значення, що відмінне від 0 ("0" – вимикає відображення на сторінці оплати).
- token – налаштування для роботи з Токеном (див. розділ 4 «Оплата замовлення з використанням платіжного токену»)
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Обов’язковий параметр для оплати за Токеном |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Обов’язкови й параметр для оплати за Токеном |
| cardMask | Маска Картки | Обов’язковий параметр для оплати за Токеном |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Ні |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника | Ні |
| showEmail | "Y" або порожнє значення – вмикає відображення поля "e-mail" на сторінці оплати, "N" – приховує поле "e-mail" на сторінці оплати (значення без задання – "Y") | Ні |
В залежності від переданих значень параметрів emailAddress та showEmail можливі 4 варіанти відображення поля "e-mail" на сторінці оплати:
| Варіант | emailAddress | showEmail | Відображення на сторінці оплати |
|---|---|---|---|
| 1 | порожнє значення | Y | Відображається порожнє поле вводу e-mail |
| 2 | валідний | Y | Відображається попередньо заповнене поле вводу e-mail з можливістю редагування |
| 3 | порожнє значення | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною |
| 4 | валідний | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною. Однак e-mail, що переданий у запиті, обробляється і на нього надсилається квитанція про сплату |
-
style – налаштування стилів сторінки оплати (див. розділ 3.3 «Управління зовнішнім виглядом сторінки оплати»).
-
goods – необов’язковий блок, що містить масив даних для фіскалізації.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| internalCode | Код продавця | Так |
| manufacturerCode | Код виробника | Ні |
| govClassificationCode | Код УКТЗЕД | Ні |
| name | Назва товару\послуги | Так |
| name_en | Назва товару\послуги EN | Ні |
| description | Опис товару\послуги | Ні |
| description_en | Опис товару\послуги EN | Ні |
| price | Ціна ( шт) | Так |
| quantity | Кількість | Так |
| uomCode | Одиниця виміру ( не обов'язково, за замовчуванням шт) | Ні |
| amount | Сума | Так |
| taxRateCodes | Цифровий код ставки податку (попередньо програмується у особистому кабінеті податвого агента). Якщо до товару потрібно застосувати декілька податків - вказати через кому | Так |
| descriptionUrl | Поcилання на опису товара | Ні |
| imageUrl | Посилання на картинку товару | Ні |
| barcode | Штрих-код товару |
Службові функції:
-
PG.success – функція, що приймає об’єкт даних data, який описує проведений платіж. У випадку, якщо Мерчант не проводить обробку даних, платіжна кнопка змінює свій стан та назву, що дозволяє платнику завантажити квитанцію при натисканні на неї.
-
PG.brandButton – функція, що приймає об’єкт даних, який описує та стилізує платіжну кнопку.
-
PG.paymentData – функція, що ініціалізує та розміщує платіжну кнопку на сторінці Мерчанта.
Ця функція приймає наступні аргументи:
PG.paymentData(typePayment, data, typeView);
Де:
1) typePayment – рядок, що характеризує тип проведення платежу та може набувати наступних значень:
| Значення | Опис |
|---|---|
| gateway | Цей тип платежу дозволяє створити та провести типовий платіж на основі переданих даних. Об’єкт data формується як для звичайного запиту на основі json |
| stock | Цей тип платежу передбачає проведення платежу на основі переданого ідентифікатора продукту, що був створений в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "id":"303429c03b3a743bdf8ee02" }; |
| terminal | Цей тип платежу зберігає обробку властивостей об’єкту data, що передаються при оплаті з використанням типу terminal, але дозволяє залишати billAmount, description, attribute1, attribute2, attribute3, attribute4 незаповненими для подальшої ініціалізації цих даних платником |
| p2p | Цей тип платежу передбачає проведення платежу із зарахуванням коштів на картку Мерчанта, що була перевірена та додана в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "hash":"" };, де hash – значення з посилання на переказ |
2) typeView – рядок, що характеризує вигляд модального вікна та може набувати наступних значень:
- modal – відкриває вікно оплати у новому вікні браузера з заданими розмірами (див. мал. 7).
- frame – відкриває вікно оплати у фреймі (див. мал. 8);
-
PG.create – функція, що створює платіжний фрейм на основі даних, що були передані у функцію PG. paymentData. Цю функцію можна використовувати у випадку, коли Мерчант створює власні механізми виклику платіжного фрейму. Не містить жодних аргументів.
-
PG.setButtonId – функція пропонується для випадків, коли Мерчант сам проводить стилізацію кнопки виклику фрейму та ініціалізує власний текст на кнопці. Ця функція приймає в якості аргументу html-атрибут id кнопки Мерчанта. Наприклад:
PG.setButtonId('paymentButton');. Після цього, у разі натискання на кнопку, Мерчанту буде відкриватися платіжний фрейм Portmone.
Цю функцію необхідно використовувати у комбінації с функцією PG.create.
Приклад:
- створення фрейму на основі налаштувань із функції PG. paymentData
PG.paymentData("gateway",data,"frame"); PG.create();
- встановлення id кнопки Мерчанта
PG.setButtonId('paymentButton');
Структура відповіді:
Якщо Мерчант ініціалізує обробку даних після проведення платежу клієнтом на своїй стороні через службову функцію PG.success(), то для цього необхідно реалізувати обробку даних, що будуть передані до функції обробки.
Опис параметрів, що надійдуть до функції обробки:
| Параметр | Опис |
|---|---|
| status | Статус транзакції. Приймає значення PAYED |
| errorCode | Код помилки |
| error | Залишається незаповненим |
| shopBillId | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| billAmount | Сума платежу |
| shopOrderNumber | Номер замовлення (рахунку) у системі Мерчанта |
| cardMask | Маска Картки платника |
| attribute1 | Службове поле |
| attribute2 | Службове поле |
| attribute3 | Службове поле |
| attribute4 | Службове поле |
| receiptLink | Посилання для отримання квитанції |
| lang | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| description | Коментар до замовлення / опис призначення оплати. До 250 символів |
| token | Токен платіжної картки |
| commission | Комісія при проведенні платежу |
| payeeName | Назва Мерчанта |
| billCurrency | Валюта проведення платежу |
| IPSTokenValue | Унікальний токен Visa |
| errorIPSCode | Код помилки, якщо токен Visa не був створений |
| errorIPSMessage | Текст помилки, якщо токен Visa не був створений |

Мал. 7 – приклад вікна оплати у новому вікні браузера з заданими розмірами
3.4.2 Оплата у вбудованому фреймі (iframe)
Технічні вимоги та налаштування Apple Pay: Для Apple Pay існують обмеження на рівні браузерів: у вбудованому iframe кнопка Apple Pay може працювати нестабільно або не відображатися взагалі. Це пов’язано з політикою безпеки Apple, яка вимагає прямої взаємодії з користувачем та перевірки домену мерчанта.
- Щоб забезпечити стабільну роботу Apple Pay у iframe, необхідно:
- Створити сертифікати Apple та пройти верифікацію домену згідно інструкції.
- У об'єкті ініціалізації платежу
dataв блоціpayeeпередавати додаткові параметри, які ідентифікують мерчанта у системі Apple:appleMerchantName— унікальний Merchant ID, створений у кабінеті Apple Developer під час налаштування Apple Pay;appleMerchantLabel— назва, що відображається користувачу у вікні Apple Pay під час вибору картки.
- Для коректної роботи Apple Pay з QR-кодом підключіть офіційну бібліотеку apple-pay-js. Посилання на документацію Apple
<head>
<script
crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js"
crossorigin="anonymous"
></script>
</head>
- Потрібно розміщати iframe у верхній структурі DOM-дерева сторінки. Для цього:
- Створіть div і задайте йому унікальний id.
- Розташуйте цей div на верхніх рівнях DOM-структури
- У об'єкті ініціалізації платежу
dataпередайте параметрframeHolderIdзі значенням, яке відповідає id створеного елемента.
"frameHolderId": "paymentFrame1"
Інструкція з налаштування сертифікатів Apple Pay та верифікації домену:
Ознайомтесь з відео-інструкцією, яка детально пояснює реєстрацію та перевірку у системі Apple Pay. Детальна відео-інструкція з налаштування Apple Pay.
1. Реєстрація Merchant ID
Ідентифікатор мерчанта унікально ідентифікує вас в Apple Pay як мерчанта, який може приймати платежі. Ідентифікатор мерчанта ніколи не втрачає чинності, і ви можете використовувати один і той самий ідентифікатор для кількох додатків.
- Увійдіть до облікового запису Apple Developer Account.
- Перейдіть у розділ Certificates, Identifiers & Profiles.
- Натисніть Identifiers у боковій панелі, а потім кнопку додавання (+) у верхньому лівому куті.
- Виберіть Merchant IDs, а потім натисніть Continue.
- Введіть Description та Identifier*, після чого натисніть Continue.
- Перегляньте налаштування та на тисніть Register.
- Надішліть ваш Merchant ID до Portmone на адресу:
[email protected]. - Отримайте зворотнім листом CSR-файл, сформований Portmone, який буде необхідним для створення Apple Pay Payment Processing Certificate.
Примітка:
Description – опис мерчанта.
Identifier – домен вашого сайту у зворотному порядку з додаванням "merchant" на початку (наприклад, для сайту shop.ua ідентифікатор будеmerchant.ua.shop).
2. Створення Apple Pay Payment Processing Certificate
Apple Pay Payment Processing Certificate пов’язаний з вашим ідентифікатором мерчанта та використовується для шифрування платіжної інформації. Термін дії сертифіката обробки платежів закінчується кожні 25 місяців. Якщо сертифікат буде відкликано, ви можете створити його знову.
- Увійдіть до облікового запису Apple Developer Account.
- У розділі Certificates, Identifiers & Profiles натисніть Identifiers у боковій панелі.
- У розділі Identifiers використайте фільтр у верхньому правому куті та виберіть Merchant IDs.
- Справа оберіть ваш ідентифікатор мерчанта*.
- У розділі Apple Pay Payment Processing Certificate натисніть Create Certificate.
- Завантажте CSR-файл, отриманий від Portmone, натиснувши Choose File, а потім Continue.
- Натисніть Download.
- Надішліть завантажений сертифікат (apple_pay.cer) до Portmone на адресу:
[email protected].
Примітка:
Якщо у верхній частині сторінки з’являється банер із повідомленням про необхідність прийняття угоди, натисніть кнопку Review Agreement та дотримуйтесь інструкцій перед продовженням.
3. Реєстрація та верифікація домену
- Увійдіть до облікового запису Apple Developer Account.
- У розділі Certificates, Identifiers & Profiles натисніть Identifiers у боковій панелі, а потім виберіть Merchant IDs у випадаючому меню у верхньому правому куті.
- Оберіть ваш Merchant ID.
- У розділі Merchant Domains натисніть Add Domain.
- Введіть назву свого домену та натисніть Save.
- Завантажте файл
apple-developer-merchantid-domain-association.txt. - Розмістіть файл у кореневій директорії вашого домену за наступним шляхом:
https://<your-domain>/.well-known/apple-developer-merchantid-domain-association.txt - Переконайтесь, що файл доступний через браузер за вказаним URL.
- Натисніть Verify.
- Якщо все налаштовано правильно, статус домену зміниться на Verified.
Примітка:
Домен повинен підтримувати HTTPS.
4. Створення Apple Pay Merchant Identity Certificate
Для роботи з Apple Pay необхідний Merchant Identity Certificate. Цей сертифікат забезпечує безпечне здійснення операцій і ідентифікує мерчанта. Також він потрібний для створення Apple Pay Payment Session під час верифікації магазину.
Перед створенням Apple Pay Merchant Identity Certificate вам необхідно отримати Certificate Signing Request (CSR). Це можна зробити одним із декількох способів:
-
Отримання CSR і приватного ключа від Portmone. (Рекомендований спосіб)
Надішліть лист на адресу:[email protected]с запитом на отримання CSR для створення Apple Pay Merchant Identity Certificate, у відповідь отримайте підготовлений CSR-файл, що відповідає вимогам Apple, разом із приватним ключем. Цей спосіб є рекомендованим, оскільки він спрощує процес і гарантує сумісність. -
Самостійна генерація CSR та приватного ключа
Є декілька шляхів самостійного ство рення CSR та приватного ключа: використання Keychain Access на macOS (посилання на інструкцію Apple.) або через OpenSSL. Нижче наведено інструкцію для створення за допомогою Keychain Access:
- Відкрийте Keychain Access, що знаходиться в
/Applications/Utilities. - У меню оберіть: Keychain Access → Certificate Assistant → Request a Certificate from a Certificate Authority.
- У вікні, що з'явиться, заповніть поля:
- User Email Address: вкажіть вашу електронну пошту.
- Common Name: введіть назву ключа.
- CA Email Address: залиште пустим.
- Оберіть опцію I will provide the key pair information, щоб вручну створити пару ключів, необхідних для CSR.
- Оберіть опцію Saved to disk і натисніть Continue. Збережіть файл із розширенням
.certSigningRequest. - Використовуйте алгоритм і розмір ключа: RSA(2048). Apple Pay on the Web troubleshooting guide / Create a merchant identity certificate
- Відкрийте Keychain Access, що знаходиться в
Після отримання CSR виконайте наступні дії для створення сертифікату:
- Увійдіть до облікового запису Apple Developer Account.
- У розділі Certificates, Identifiers & Profiles натисніть Identifiers у боковій панелі, а потім виберіть Merchant IDs у випадаючому меню у верхньому правому куті.
- У списку знайдіть створений Merchant ID та натисніть на нього.
- У розділі Apple Pay Merchant Identity Certificate натисніть Create Certificate.
- Завантажте CSR-файл, натиснувши Choose File, оберіть файл і натисніть Continue.
- Завершіть процес, натиснувши Download, щоб зберегти готовий сертифікат.
- Надішліть згенерований сертифікат (merchant_id.cer) та приватний ключ (якщо ви генерували його самостійно) до Portmone на адресу
[email protected].
Інтеграція платіжної кнопки: Для розміщення платіжної кнопки Portmone на сторінці Мерчанта необхідно визначити місце розташування кнопки на сторінці та вставити JavaScript код для підключення скрипта і ініціалізації віджета.
Після завантаження скрипту pg.min.js платіжна кнопка буде розміщена в тому блоці, в якому розміщений код для завантаження скрипту.
Приклад:
<div class="span4">
<script src="https://www.portmone.com.ua/r3/resources/pg/js/asset/pg.min.js?v=15092019"></script>
<script type="text/javascript" id="portmone-script">
var data = {};
var brand = {
height: "40px",
width: "150px",
buttoncolor: "#FF0000",
fontfamily: "Open Sans",
textcolor: "#FFF",
lang: "uk",
padding: "5px",
border: "1px solid grey",
fontsize: "14px",
closemodal: "Y",
};
PG.success(function (data) {
console.log(JSON.stringify(data));
});
PG.paymentData("gateway", data);
PG.brandButton(brand);
</script>
</div>
Брендування платіжної кнопки
Об'єкт brand відповідає за брендування кнопки «Оплатити», при натистканні якої відб увається виклик вікна оплати.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| height | Встановлює висоту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| width | Встановлює ширину кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| buttoncolor | Встановлює колір кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontfamily | Встановлює тип шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| textcolor | Встановлює колір шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| lang | Встановлює мову для відображення тексту кнопки “Сплатити”/ “Завантажити квитанцію”. Якщо інше не було задане, приймає значення uk – українська | Ні |
| padding | Встановлює значення полів навколо вмісту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| border | Дозволяє одночасно встановити товщину, стиль і колір рамки навколо кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontsize | Встановлює розмір шрифту. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| closemodal | Опція, що визначає, чи потрібно закривати модальне вікно після здійснення платежу клієнтом. При значенні "N" вікно не закривається, клієнту відображається повідомлення про успішну оплату у модальному вікні. При значенні "Y" – вікно закривається та виконується передача даних платежу до функції обробки мерчанта. Значення без задання: Y | Ні |
Ініціалізація платіжного віджета:
Для роботи віджета необхідно передати об’єкт data, який містить інформацію про продавця, параметри замовлення та методи оплати.
Приклад об’єкта data наведено у розділі "3.4.2 Приклад об’єкта data для режиму iframe"
Опис параметрів об’єкту data:
- payee – блок, що необхідний для ідентифікації партнера
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| login | Логін компанії. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| appleMerchantName | Ідентифікатор продавця Apple - Merchant ID | Так |
| appleMerchantLabel | Назва, яка буде відображатися клієнту в Apple pay при виборі картки. | Так |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| signature | Підпис запиту | Так |
| displayMessage | Відображення інформації на платіжній сторінці для клієнта:<font style=\"font-size:14px;\">Hello</font> %username% ! | Ні |
| shopSiteId | Цифровий ідентифікатор каналу продажу | Ні |
- order – блок, що міс тить опис платежу
| Параметр | Опис | Обов’язковий |
|---|---|---|
| description | Опис платежу (коментар до замовлення/призначення. Максимальна кількість символів 250 оплати) | Ні |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера. Максимальна кількість символів 128 | Ні |
| billAmount | Сума платежу | Так |
| 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 | Використовується для передачі параметрів розщеплення платежу. Максимальна кількість символів 500. (див. розділ 7 «Розщеплення платежу») | Ні |
- paymentTypes – дозволяє обрати способи проведення платежів (Y – вмикати, N – не вмикати). Якщо параметри не задані, тоді використовуються способи платежів, що закріплені за Інтернет-магазином у налаштуваннях Portmone.com, або вмикаються два основні способи проведення платежів: "card", "portmone".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| card | Оплата Карткою | Ні |
| portmone | Оплата через гаманець Portmone.com | Ні |
| token | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| clicktopay | Оплата за допомогою Visa Click to Pay | Ні |
| privat | Оплата через систему LigPay, з в ибором картки з Інтернет-банкінгу Приват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") | Ні |
| link | Оплата методом BankPay (через застосунок Банка платника). Метод працює за умови передачі таких параметрів: expTime та "showEmail": "Y" | Ні |
- priorityPaymentTypes – цей блок дозволяє керувати розміщенням способів проведення платежів на сторінці. При значенні 0 навпроти методу оплати – вкладка з методом оплати не вмикається, інше по мірі зростання: 1 – до початку списку, 2 – на другій позиції, 3 – третя і т. д.
Важливо! У
paymentTypesспосіб оплати повинен бути в значенні "Y", уpriorityPaymentTypes– мати цифрове значення, що відмінне від 0 ("0" – вимикає відображення на сторінці оплати).
- token – налаштування для роботи з Токеном (див. розділ 4 «Оплата замовлення з використанням платіжного токену»)
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Обов’язковий параметр для оплати за Токеном |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Обов’язковий параметр для оплати за Токеном |
| cardMask | Маска Картки | Обов’язковий параметр для оплати за Токеном |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Ні |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника | Ні |
| showEmail | "Y" або порожнє значення – вмикає відображення поля "e-mail" на сторінці оплати, "N" – приховує поле "e-mail" на сторінці оплати (значення без задання – "Y") | Ні |
В залежності від переданих значень параметрів emailAddress та showEmail можливі 4 варіанти відображення поля "e-mail" на сторінці оплати:
| Варіант | emailAddress | showEmail | Відображення на сторінці оплати |
|---|---|---|---|
| 1 | порожнє значення | Y | Відображається порожнє поле вводу e-mail |
| 2 | валідний | Y | Відображається попередньо заповнене поле вводу e-mail з можливістю редагування |
| 3 | порожнє значення | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною |
| 4 | валідний | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною. Однак e-mail, що переданий у запиті, обробляється і на нього надсилається квитанція про сплату |
- style – налаштування стилів сторінки оплати.
Зовнішній вигляд сторінки оплати можна налаштовувати за допомогою параметру style.
Опис полів параметру style
| Поле | Опис | Тип стилю сторінки (type), для якого може застосовуватись поле |
|---|---|---|
| type | Встановлює тип стилю для сторінки оплати: • portmone – значення без задання (стандартний стиль portmone.com, див. мал. 3); • brand – повна стилізація сторінки для партнера (див. мал. 4); • co-brand – логотип партнера на сторінці наведений разом з логотипом portmone.com (див. мал. 5); • light – версія для відображення у вигляді фрейму (див. мал. 6). Інструкцію з вбудовування платіжної сторінки у фрейм див. нижче | |
| logo | Містить полсилання на логотип партнера. Підтримує тільки посилання з https схемою. Формат зображення тільки SVG, PNG. Рекомендується використовувати зображення з мінімальним відступом сюжету від усіх країв | brand, co-brand |
| logoWidth | Параметр, що визначає ширину логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 300px | brand, co-brand |
| logoHeight | Параметр, що визначає висоту логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 50px (для формата PNG максимальна висота – 53px) | brand, co-brand |
| backgroundColorHeader | Встановлює колір секції header на сторінці. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| backgroundColorButtons | Встановлює колір кнопок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| colorTextAndIcons | Встановлює колір тексту та іконок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| borderColorList | Встановлює колір ліній у списку методів прове дення платежів. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| bcMain | Визначає колір фону сторінок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| privatButtonPosition | У разі використання методу оплати "privat", цей параметр визначає розміщення кнопки Privat24 на платіжній формі. Розташування кнопки може бути задано одним із трьох варіантів: "top" (угорі платіжної форми), "middle" (посередині платіжної форми) або "bottom" (унизу платіжної форми). За замовчуванням використовується значення "bottom". | portmone, brand, light, co-brand |
| closeVisible | Дозволяє керувати відображенням кнопки "закрити" у платіжному фреймі. Приймає значення "Y" або "N". | portmone, brand, light, co-brand |
- goods – необов’язковий блок, що містить масив даних для фіскалізації.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| internalCode | Код продавця | Так |
| manufacturerCode | Код виробника | Ні |
| govClassificationCode | Код УКТЗЕД | Ні |
| name | Назва товару\послуги | Так |
| name_en | Назва товару\послуги EN | Ні |
| description | Опис товару\послуги | Ні |
| description_en | Опис товару\послуги EN | Ні |
| price | Ціна ( шт) | Так |
| quantity | Кількість | Так |
| uomCode | Одиниця виміру ( не обов'язково, за замовчуванням шт) | Ні |
| amount | Сума | Так |
| taxRateCodes | Цифровий код ставки податку (попередньо програмується у особистому кабінеті податвого агента). Якщо до товару потрібно застосувати декілька податків - вказати через кому | Так |
| descriptionUrl | Поcилання на опису товара | Ні |
| imageUrl | Посилання на картинку товару | Ні |
| barcode | Штрих-код товару |
Службові функції:
-
PG.success – функція, що приймає об’єкт даних data, який описує проведений платіж. У випадку, якщо Мерчант не проводить обробку даних, платіжна кнопка змінює свій стан та назву, що дозволяє платнику завантажити квитанцію при натисканні на неї.
-
PG.brandButton – функція, що приймає об’єкт даних, який описує та стилізує платіжну кнопку.
-
PG.paymentData – функція, що ініціалізує та розміщує платіжну кнопку на сторінці Мерчанта.
Ця функція приймає наступні аргументи:
PG.paymentData(typePayment, data, typeView);
Де:
1) typePayment – рядок, що характеризує тип проведення платежу та може набувати наступних значень:
| Значення | Опис |
|---|---|
| gateway | Цей тип платежу дозволяє створити та провести типовий платіж на основі переданих даних. Об’єкт data формується як для звичайного запиту на основі json |
| stock | Цей тип платежу передбачає проведення платежу на основі переданого ідентифікатора продукту, що був створений в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "id":"303429c03b3a743bdf8ee02" }; |
| terminal | Цей тип платежу зберігає обробку властивостей об’єкту data, що передаються при оплаті з використанням типу terminal, але дозволяє залишати billAmount, description, attribute1, attribute2, attribute3, attribute4 незаповненими для подальшої ініціалізації цих даних платником |
| p2p | Цей тип платежу передбачає проведення платежу із зарахуванням коштів на картку Мерчанта, що була перевірена та додана в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "hash":"" };, де hash – значення з посилання на переказ |
2) typeView – рядок, що характеризує вигляд модального вікна та може набувати наступних значень:
- modal – відкриває вікно оплати у новому вікні браузера з заданими розмірами (див. мал. 7).
- frame – відкриває вікно оплати у фреймі (див. мал. 8);
-
PG.create – функція, що створює платіжний фрейм на основі даних, що були передані у функцію PG. paymentData. Цю функцію можна використовувати у випадку, коли Мерчант створює власні механізми виклику платіжного фрейму. Не містить жодних аргументів.
-
PG.setButtonId – функція пропонується для випадків, коли Мерчант сам проводить стилізацію кнопки виклику фрейму та ініціалізує власний текст на кнопці. Ця функція приймає в якості аргументу html-атрибут id кнопки Мерчанта. Наприклад:
PG.setButtonId('paymentButton');. Після цього, у разі натискання на кнопку, Мерчанту буде відкриватися платіжний фрейм Portmone.
Цю функцію необхідно використовувати у комбінації с функцією PG.create.
Приклад:
- створення фрейму на основі налаштувань із функції PG. paymentData
PG.paymentData("gateway",data,"frame"); PG.create();
- встановлення id кнопки Мерчанта
PG.setButtonId('paymentButton');
Додаткові можливості:
- Розміщення фрейму у визначений елемент сторінки:
- Створіть div і задайте йому унікальний id.
- Розташуйте цей div на верхніх рівнях DOM-структури
- У об'єкті ініціалізації платежу
dataпередайте параметрframeHolderIdзі значенням, яке відповідає id створеного елемента.
"frameHolderId": "paymentFrame1"
-
Керування відображенням кнопки "Закрити" у платіжному фреймі. Щоб керувати відображенням кнопки «Закрити» у фреймі, у блоці
styleоб’єктаdataвстановіть параметрcloseVisible:"Y"— кнопка «Закрити» відображається (значення за замовчуванням)
"N"— кнопка «Закрити» приховується -
Для обробки події закриття фрейму використайте callback-функцію
PG.onClose():
PG.onClose(function () {
console.log("close event");
});
- Для обробки події завантаженя сторінки оплати у фреймі використайте callback-функцію
PG.onFrameLoad():
PG.onFrameLoad(function() {
console.log('frame loaded');
});
Структура відповіді:
Якщо Мерчант ініціалізує обробку даних після проведення платежу клієнтом на своїй стороні через службову функцію PG.success(), то для цього необхідно реалізувати обробку даних, що будуть передані до функції обробки.
Опис параметрів, що надійдуть до функції обробки:
| Параметр | Опис |
|---|---|
| status | Статус транзакції. Приймає значення PAYED |
| errorCode | Код помилки |
| error | Залишається незаповненим |
| shopBillId | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| billAmount | Сума платежу |
| shopOrderNumber | Номер замовлення (рахунку) у системі Мерчанта |
| cardMask | Маска Картки платника |
| attribute1 | Службове поле |
| attribute2 | Службове поле |
| attribute3 | Службове поле |
| attribute4 | Службове поле |
| receiptLink | Посилання для отри мання квитанції |
| lang | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| description | Коментар до замовлення / опис призначення оплати. |
| token | Токен платіжної картки |
| commission | Комісія при проведенні платежу |
| payeeName | Назва Мерчанта |
| billCurrency | Валюта проведення платежу |
| IPSTokenValue | Унікальний токен Visa |
| errorIPSCode | Код помилки, якщо токен Visa не був створений |
| errorIPSMessage | Текст помилки, якщо токен Visa не був створений |

Мал. 8 – приклад вікна оплати у фреймі на сайті Інтернет-магазину
3.5. Підпис запиту
Формування поля signature (приклад на PHP):
$login = 'WDISHOP';
$payeeId = '1185';
$shopOrderNumber = 'test';
$billAmount='1';
$key = 'BDFC166F8AE2F5323A557DB6CA16758D';
$dt = date("YmdHis");
$strToSignature = $payeeId.$dt.bin2hex($shopOrderNumber).$billAmount;
$strToSignature = strtoupper($strToSignature).strtoupper(bin2hex($login));
$signature = strtoupper(hash_hmac('sha256', $strToSignature, $key));
echo $signature;
| Параметр | Опис | Обов’язковий |
|---|---|---|
| login | Логін компанії | Так |
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера | Ні |
| billAmount | Сума платежу (значення без копійок - 10, з копійками - 10.23) | Так |
| key | Ключ, який надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| dt | Дата формування підпису | Так |
Доступність і обмеження:
Якщо передаєте параметр shopOrderNumber в запиті на оплату, тоді він має бути переданий у формуванні підпису запиту і співпадати.
Параметр billAmount має співпадати в запиті на оплату.