Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Зміст

Table of Contents
maxLevel2
indent0px
absoluteUrltrue
stylecircle

Опис

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


Демо

Iframe
scrollingno
srchttps://devplaton.com.ua/invoices/demo_buttons/payment_card_AP_GP_P24.php
width570
frameborderhide
height50


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

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

Вимоги

Include Page
Вимоги до сайтів та додатків
Вимоги до сайтів та додатків

Обмеження

Expand
titleApple Pay

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

Expand
titleGoogle 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
colourGreen
titleОБов'язковий

String

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

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

payment

Status
colourGreen
titleОБов'язковий

CC

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

data

Status
colourGreen
titleОБов'язковий

amount

Status
colourGreen
titleОБов'язковий

Number

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

Tip

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

1000.00

Warning

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

1000
1000.0
1,000.0
1,000.00

currency

Status
colourGreen
titleОБов'язковий

UAH

Валюта

Info

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

description

Status
colourGreen
titleОБов'язковий

String

Опис

Note

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

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

recurring

Status
colourYellow
titleне ОБов'язковий

Y

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

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

Note

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

url

Status
colourGreen
titleОБов'язковий

String

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

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

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

email

Status
colourGreen
titleОБов'язковий

String

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

Info

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

Info

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

Max 255 символів.

phone

Status
colourYellow
titleНЕ ОБов'язковий

Number

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

Info

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

Max 255 символів.

req_token

Status
colourGreen
titleОБов'язковий

Y

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

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

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

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

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

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

Note

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

sign

Status
colourGreen
titleОБов'язковий

String

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

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

order

Status
colourYellow
titleНЕ ОБов'язковий

String

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

Max 255 символів.

Info

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

error_url

Status
colourYellow
titleНЕ ОБов'язковий

String

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

Max 1024 символів.

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

first_name

Status
colourYellow
titleНЕ ОБов'язковий

String

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

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

last_name

Status
colourYellow
titleНЕ ОБов'язковий

String

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

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

address

Status
colourYellow
titleНЕ ОБов'язковий

String

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

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

zip

Status
colourYellow
titleНЕ ОБов'язковий

String

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

Max 255 символів.

city

Status
colourYellow
titleне обязательно

String

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

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

country

Status
colourYellow
titleНЕ ОБов'язковий

String

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

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

Max 2 символа.

state

Status
colourYellow
titleНЕ ОБов'язковий

String

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

Note

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

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

Max 3 символа.

customer_wallet

Status
colourYellow
titleНЕ ОБов'язковий

String

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

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

lang

Status
colourYellow
titleНЕ ОБов'язковий

UK
EN

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

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

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

formid

Status
colourYellow
titleНЕ ОБов'язковий

String

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

Max 255 символів.

ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, ext9, ext10

Status
colourYellow
titleНЕ ОБов'язковий

String

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

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


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

Expand
titleПриклад запиту PHP + HTML

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

Info

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

Warning

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

Code Block
languagephp
<?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>
Expand
titleПриклад запиту JavaScript + HTML

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

Info

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

Warning

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

Code Block
languagephpjs
<!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>
Info

Postman Collection


Тестування

Expand
titleВикористайте наші тестові реквізити
Include Page
Тестові реквізити (IE, A2C)
Тестові реквізити (IE, A2C)

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

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

Expand
titleАльтернативний час платіжної сесії

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

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

  • 10 хв

  • 30 хв

  • 75 хв


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

Expand
titleСписок методів отримання статусу транзакції
Include Page
Отримання результату транзакції
Отримання результату транзакції

Callback

Expand
titleОсобливості роботи з Callback
Include Page
Робота з Callback
Робота з Callback
Expand
titleБезпека
Include Page
Безпека
Безпека
Include Page
Callback / Response - СС та CCT
Callback / Response - СС та CCT
Include Page
Callback / Response - P24
Callback / Response - P24
Expand
titleПриклад GET параметрів
Tip

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

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

order = 12345

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

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

Note

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


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

Expand
titleСписок помилок та рішень
Include Page
Помилки та рішення при запитах
Помилки та рішення при запитах