/
Оплата частинами ПриватБанк (Server - Server)

Оплата частинами ПриватБанк (Server - Server)

Цей функціонал буде активовано після вашого запиту в груповому чаті.


Зміст

 


Опис

 

Цей функціонал дозволить розмістити на вашому боці інтерфейс оплати частинами для клієнтів ПриватБанк.

Мінімальна сума - 300 грн.

Максимальна сума - 300 000 грн.


Чекліст интеграції

 

Привести сайт / додаток до відповідності вимогам.
Передати тех підтримці PSP Platon посилання для Callback.
Повідомити тех підтримці PSP Platon ваші IP адреси серверів сайта або про те, що буде використовуватись додаток (в цьому випадку обмеження по IP будуть зняті).
Провести інтеграцію цього API методу.
Створити і відобразити клієнту кнопку оплати частинами Приватбанк
Відобразити клієнту вибір кількості частин за необхідності в проміжку від 2 до 24 платежів (включно).
Відправити API запит з вашого сервера / додатку відповідно до цього API методу.
Редіректити платника на сторінку оформлення оплати частинами Приватбанк.
Отримати Response або Callback зі статусом платежа PSP Platon після проведення платником дій в додатку Приватбанк.
Повідомити клієнту про успішність / не успішність оплати частинами.

Рекомендації

 

Рекомендуємо відобразити повідомлення, що клієнту необхідна активна картка Приватбанк.

Рекомендуємо відобразити повідомлення, що перше списання коштів з клієнта відбудеться одразу, тобто у клієнта має бути відповідна сума на основному балансі.


Вимоги до сайту

 


API параметри

 

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/post/

Параметр

Значення

Опис

Особливості

Параметр

Значення

Опис

Особливості

action
status:обов'язковий

SALE_PART

Код платіжного метода

 

client_key
status:обов'язковий

String

API ключ мерчанта

Ключ надається на пошту мерчанта

order_id
status:обов'язковий

String

ID оплати в системі мерчанта

Max 32 символи

order_amount
status:обов'язковий

Number

Сума оплати

Мінімальна сума оплати частинами Приватбанк - 300.00

Вірний варіант

1000.00

Невалідні варіанти

1000
1000.0
1,000.0
1,000.00

order_currency
status:обов'язковий

UAH

Валюта

Оплата можлива лише в національній валюті гривні

order_description
status:обов'язковий

String

Опис

Для кириличних символів необхідно використовувати формат UTF-8

Max 255 символів

payer_ip
status:обов'язковий

Number

IP-адреса платника

В форматі "ХХХ.ХХХ.ХХХ.ХХХ"

IPv6 на даний момент не підтримується та за наявності буде приводити до помилки.

term_url_3ds
status:обов'язковий

String

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

Max 255 символів

payer_email
status:обов'язковий

String

Пошта платника

Обов'язково валідна пошта.

Відсутність пробілів.

Max 255 символів

payer_phone
status:обов'язковий

Number

Фінансовий номер телефону платника прив'язаний до Приватбанк

Обов'язковий формат телефону +380XXXXXXXXX

ext4
status:обов'язковий

String

"{"available_parts_count":"n"}"

JSON з кількістю обраних частин від 2 до 24 (включно), наприклад "{"available_parts_count":"6"}"

channel_id
status:опція

String

 

 

hash
status:обов'язковий

String

Контрольний підпис

md5( strtoupper($pass). strrev($order_id) )

async
status:не обов'язковий

Y
N

Включити асинхронний режим

В асинхронному режимі обов'язкове використання коллбеків.
Стандартне значення N

payer_first_name
status:не обов'язковий

String

Ім'я платника

Max 32 символи без пробілів

payer_last_name
status:не обов'язковий

String

Прізвище платника

Max 32 символи без пробілів

payer_address
status:не обов'язковий

String

Адреса платника

Max 256 символи
ВказатиNA, якщо немає даних

payer_country
status:не обов'язковий

String

Країна платника

Стандарт ISO 3166-1 alpha-2
В форматі "ХХ"
2 символа
Вказати NA, якщо немає даних

payer_state
status:не обов'язковий

String

Штат платника

Стандарт ISO 3166-2
В форматі "ХХ"
2 символа
Вказати NA, якщо немає даних

payer_city
status:не обов'язковий

String

Місто плателника

Max 32 символи
Вказати NA, якщо немає даних

payer_zip
status:не обов'язковий

String

Поштовий індекс платника

Max 32 символи

ext1, ext2, ext3, ext5, ext6, ext7, ext8, ext9, ext10
status:не обов'язковий

String

10 додаткових полів

Max 1024 символи в кажному ext полі


Приклад запиту

 

<?php $client_pass = '***'; $data['action'] = 'SALE_PART'; $data['client_key'] = '***'; $data['order_id'] = '546-4588'; $data['order_amount'] = '1000.00'; $data['order_currency'] = 'UAH'; $data['order_description'] = 'test'; $data['payer_first_name'] = 'Ivan'; $data['payer_last_name'] = 'Ivanov'; $data['payer_phone'] = '+380111111111'; $data['payer_email'] = 'sale@gmail.com'; $data['payer_ip'] = '213.186.115.164'; $data['term_url_3ds'] = 'https://google.com'; $data['ext4'] = '{"available_parts_count":"6"}'; $data['hash'] = md5( strtoupper($client_pass). strrev($data['order_id']) ); $url = 'https://secure.platononline.com/post/'; $crq = curl_init(); curl_setopt($crq, CURLOPT_URL, $url); curl_setopt($crq, CURLOPT_HEADER, 0); curl_setopt($crq, CURLOPT_POST, 1); curl_setopt($crq, CURLOPT_RETURNTRANSFER, 1); curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($crq, CURLOPT_POSTFIELDS, $data); $result = curl_exec($crq); if (curl_errno($crq)) { echo 'ERROR: '.curl_error($crq); }else{ echo $result; } curl_close($crq);

Тестування

 

Тестовий режим вмикається опціонально на боці PSP Platon.

Для тестування після редіректа клієнта на сторінку оформлення оплати частинами Приватбанк необхідно ввести тестові реквізити:

Телефон - 988748970

Пароль - password8970

Увага! При бойовому використанні, якщо було введено телефон який у клієнта підв'язано в Приватбанк і у нього є додаток на телефоні, то замість редіректа в браузер буде редірект в додаток. В інших випадках клієнту відкриється форма Приватбанка для авторизації в браузері.


Перевірка оплат

 


Callback

 


Синхронний режим

Стандартний режим роботи. Передавати async = N не потрібно.


Асинхронний режим

Цей режим активується при передачі async = Y. В цьому режимі є обов'язковим використання коллбеків.

Принципової різниці у використанні синхронного або асинхронного режимів немає. Вам необхідно вибрати в залежності від найбільш зручного варіанту реалізації саме під ваш проект.



Помилки запитів

 

Related content