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


note

Зміст

Зміст


note

Опис

Опис

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


note

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

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

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

note

Вимоги

Вимоги


note

API параметри

API параметри

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action

SALE

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

client_key

String

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

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

order_id

String

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

Max 32 символи

order_amount

Number

Сума оплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

order_currency

UAH

Валюта

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

order_description

String

Опис

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

Max 255 символів

payer_ip

Number

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

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

IPv6 не підтримується

term_url_3ds

String

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

Max 255 символів

card_number

Number

Повний номер картки

В форматі "ХХХХХХХХХХХХХХХХ"
16 символів

card_exp_month

Number

Місяць закінчення терміну дії картки

В форматі "ХХ"
2 символи

card_exp_year

Number

Рік закінчення терміну дії картки

В форматі "ХХХХ"
4 символи

card_cvv2

Number

CVV код

В форматі "ХХХ"
3 символи

payer_email

String

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

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

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

Max 255 символів

payer_phone

Number

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

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

req_token

Y
N

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

Для отримання card_token

recurring_init

Y
N

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

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

hash

String

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

md5(
  strtoupper(
    strrev($email).
    $client_pass.
    strrev(
      substr($card_number,0,6).
      substr($card_number,-4)
    )
  )
)

auth

Y
N

HOLD коштів

Стандартне значення N

async

Y
N

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

В асинхронном режиме обязательное использование коллбеков.
По умолчанию значение N

channel_id

String

Додатковий платіжний канал

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

payer_first_name

String

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

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

payer_last_name

String

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

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

payer_address

String

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

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

payer_country

String

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

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

payer_state

String

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

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

payer_city

String

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

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

payer_zip

String

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

Max 32 символи

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

String

10 додаткових полей


note

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

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

<?php
    $client_pass = '***';
    $data['action'] = 'SALE';
    $data['client_key'] = '***';
    $data['order_id'] = '546-4588';
    $data['order_amount'] = '1000.00';
    $data['order_currency'] = 'UAH';
    $data['order_description'] = 'test';
    $data['card_number'] = '4111111111111111';
    $data['card_cvv2'] = '159';
    $data['card_exp_month'] = '01';
    $data['card_exp_year'] = '2022';
    $data['payer_first_name'] = 'Ivan';
    $data['payer_last_name'] = 'Ivanov';
    $data['payer_phone'] = '380111111111';
    $data['payer_address'] = 'NA';
    $data['payer_country'] = 'UA';
    $data['payer_state'] = 'NA';
    $data['payer_city'] = 'Kiev';
    $data['payer_zip'] = '01001';
    $data['payer_email'] = 'sale@gmail.com';
    $data['payer_ip'] = '213.186.115.164';
    $data['req_token'] = 'Y';
    $data['recurring_init'] = 'N';
    $data['term_url_3ds'] = 'https://google.com';
    $data['hash'] = md5(
                        strtoupper(
                            strrev($data['payer_email']).
                            $client_pass.
                            strrev(substr($data['card_number'],0,6).substr($data['card_number'],-4))
                        )
                    );

$url = 'https://secure.platononline.com/post-unq/';
$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, http_build_query($data));
$result = curl_exec($crq);
if (curl_errno($crq)) {
    echo 'ERROR: '.curl_error($crq);
}else{
    echo $result;
}
curl_close($crq);

Postman Collection


note

Тестування

Тестування

Цей API запит необхідно тестувати лише в бойовому режимі реальною карткою.


note

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

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


note

Callback

Callback


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

Цей режим працює як стандартне налаштування. Передавати async = N не потрібно.


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

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




note

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

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