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


 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

Параметр

Значення

Опис

Особливості

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

String

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

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

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

CC

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

 

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

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

Number

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

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

UAH

Валюта

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

String

Опис

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

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

Y

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

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

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

String

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

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

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

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

String

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

Max 255 символів.

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

Number

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

Max 255 символів.

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

Y

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

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

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

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

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

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

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

String

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

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

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

String

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

Max 255 символів.

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

String

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

Max 1024 символів.

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

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

String

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

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

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

String

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

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

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

String

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

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

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

String

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

Max 255 символів.

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

String

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

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

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

String

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

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

Max 2 символа.

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

String

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

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

Max 3 символа.

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

String

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

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

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

UK
EN

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

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

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

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

String

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

Max 255 символів.

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

String

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

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


 

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

<?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

<!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 секунду оплата стане не доступною та приведе до помилки. Відлік починається з моменту відкриття платіжної форми.


 


 

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