/
IA оплата на формі (Client - Server)

IA оплата на формі (Client - Server)

Зміст

 


Опис

 

Цей розділ дозволяє платнику провести платіж вводячи реквізити своєї банківської картки або використовуючи цифрові гаманці та інші методи оплати використовуючи платіжну форму PSP Platon.


Демо

 

 


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

 

Привести сайт / додаток до відповідності вимогам.
Провести інтеграцію відповідно до цього API методу.
Передати тех підтримці PSP Platon посилання для Callback.
Провести оплату використовуючи тестові реквізити / реальную карту (активується після підписання договору).
Отримати Callback та змінити статус оплати у вашій системі.

Вимоги

 


Обмеження

 

Відповідно до обмежень Apple, в цілях безпеки Apple Pay працює тільки:

Для роботи Google Pay в WebView необхідно виконати вимоги документації Google https://developer.android.com/guide/webapps/webview?hl=ru#BindingJavaScript


API параметри

 

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/payment/auth

Параметр

Значення

Опис

Особливості

Параметр

Значення

Опис

Особливості

key
status:ОБов'язковий

String

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

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

payment
status:ОБов'язковий

CC

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

 

data
status:ОБов'язковий

amount
status:ОБов'язковий

Number

Сума до оплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

currency
status:ОБов'язковий

UAH

Валюта

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

description
status:ОБов'язковий

String

Опис

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

Max 5000 символів (латиниця), 2500 (кирилиця).

recurring
status:не ОБов'язковий

Y

Створення токена картки

Для отримання rc_id та rc_token

Якщо токен не потрібен можете не передавати цей параметр.

url
status:ОБов'язковий

String

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

Max 1024 символа (латиниця).

При відсутності можливості створити вашу власну сторінку успішної оплати можете використати нашу стандартну.

email
status:ОБов'язковий

String

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

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

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

Max 255 символів.

phone
status:НЕ ОБов'язковий

Number

Номер телефона платника

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

Max 255 символів.

req_token
status:ОБов'язковий

Y

Створення токена картки

Для отримання card_token для подальшого використання в наступних методах:

Оплата в 1 клік по CARD_TOKEN

A2C виплата на картку по CARD_TOKEN

C2A оплата в 1 клік по CARD_TOKEN

Регулярний платіж по CARD_TOKEN

Якщо токен не потрібен можете не передавати цей параметр.

sign
status:ОБов'язковий

String

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

md5( strtoupper( strrev($key). strrev($payment). strrev($data). strrev($url). strrev($PASSWORD) ) )

order
status:НЕ ОБов'язковий

String

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

Max 255 символів.

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

error_url
status:НЕ ОБов'язковий

String

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

Max 1024 символів.

При відсутності можливості створити вашу власну сторінку невдалої оплати можете використати нашу стандартну.

first_name
status:НЕ ОБов'язковий

String

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

Max 50 символів (латиниця), 25 (кирилиця).

last_name
status:НЕ ОБов'язковий

String

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

Max 50 символів (латиниця), 25 (кирилиця).

address
status:НЕ ОБов'язковий

String

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

Max 255 символів (латиниця), 126 (кирилиця).

zip
status:НЕ ОБов'язковий

String

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

Max 255 символів.

city
status:не обязательно

String

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

Max 255 символів (латиниця), 126 (кирилиця).

country
status:НЕ ОБов'язковий

String

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

Стандарт ISO 3166-1 alpha-2

Max 2 символа.

state
status:НЕ ОБов'язковий

String

Код штату, провінції або області платника

Обов'язковий параметр для країн US, CA, AU

Стандарт ISO 3166-2

Max 3 символа.

customer_wallet
status:НЕ ОБов'язковий

String

Номер електронного гаманця платника

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

lang
status:НЕ ОБов'язковий

UK
EN

Мова відображення платіжної форми

В приоритеті cookie в браузері клиента з параметром lang

Стандарт ISO 639-1

formid
status:НЕ ОБов'язковий

String

Параметр додаткового налаштування

Max 255 символів.

ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, ext9, ext10
status:НЕ ОБов'язковий

String

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

Max 1024 символа в кожному ext полі (латиниця), 512 (кирилиця).


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

 

Запит відправляється тільки у варіанті HTML Form

Content-Type: form-data або x-www-form-urlencoded

Запит має відправлятися з браузера платника Client - Server, а не з сервера мерчанта Server - Server.

<?php $key = '***'; $pass = '*******'; $payment = 'CC'; $data = base64_encode( json_encode( array( 'amount' => '100.00', 'description' => 'Test', 'currency' => 'UAH' ) ) ); $req_token = 'Y'; $url = 'http://google.com'; $sign = md5( strtoupper( strrev($key). strrev($payment). strrev($data). strrev($url). strrev($pass) ) ); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Payment</title> </head> <body onload="javascript:document.forms[0].submit()"> <form action="https://secure.platononline.com/payment/auth" method="post"> <input type="hidden" name="payment" value="<?=$payment?>" /> <input type="hidden" name="key" value="<?=$key?>" /> <input type="hidden" name="url" value="<?=$url?>" /> <input type="hidden" name="data" value="<?=$data?>" /> <input type="hidden" name="req_token" value="<?=$req_token?>" /> <input type="hidden" name="sign" value="<?=$sign?>" /> </form> </body> </html>

Запит відправляється тільки у варіанті HTML Form

Content-Type: form-data або x-www-form-urlencoded

Запит має відправлятися з браузера платника Client - Server, а не з сервера мерчанта Server - Server.

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Payment</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script> </head> <body> <form id="paymentForm" action="https://secure.platononline.com/payment/auth" method="post"> <input type="hidden" name="payment" id="payment" /> <input type="hidden" name="key" id="key" /> <input type="hidden" name="url" id="url" /> <input type="hidden" name="data" id="data" /> <input type="hidden" name="req_token" id="req_token" /> <input type="hidden" name="sign" id="sign" /> </form> <script> window.onload = function() { var key = '***'; var pass = '********'; var payment = 'CC'; var data = btoa(JSON.stringify({ 'amount': '100.00', 'description': 'Test', 'currency': 'UAH' })); var req_token = 'Y'; var url = 'http://google.com'; var sign = CryptoJS.MD5( key.split('').reverse().join('').toUpperCase() + payment.split('').reverse().join('').toUpperCase() + data.split('').reverse().join('').toUpperCase() + url.split('').reverse().join('').toUpperCase() + pass.split('').reverse().join('').toUpperCase() ).toString(); document.getElementById("payment").value = payment; document.getElementById("key").value = key; document.getElementById("url").value = url; document.getElementById("data").value = data; document.getElementById("req_token").value = req_token; document.getElementById("sign").value = sign; document.getElementById("paymentForm").submit(); }; </script> </body> </html>

Тестування

 


Час платіжної сесії

 

Стандартно у платника буде 15 хв для проведення оплати. Це означає, що на 15 хвилину та 1 секунду оплата стане не доступною та приведе до помилки. Відлік починається з моменту відкриття платіжної форми.

Стандартний проміжок часу 15 хв є результатом багатоьох тестів та більш чим необхідно достатній для проведення оплати.

Якщо у вас є потреба в іншому проміжку, по вашому запиту можна налаштувати час платіжної сесії з наявних варіантів:

  • 10 хв

  • 30 хв

  • 75 хв


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

 


Callback

 

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

url = https://www.google.com/

order = 12345

Клієнта відправить після успішної оплати на https://www.google.com/?order=12345

При невдалій оплаті:

При невдалій оплаті Callback не відправляється.


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

 

 

Related content