Versions Compared

Key

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

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


Зміст

Table of Contents
maxLevel2
indent0px
absoluteUrltrue
stylecircle

Опис

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


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

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

Вимоги

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

API параметри

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action

Status
colourGreen
titleобов'язковий

SALE

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

client_key

Status
colourGreen
titleобов'язковий

String

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

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

order_id

Status
colourGreen
titleобов'язковий

String

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

Max 32 символи

order_amount

Status
colourGreen
titleобов'язковий

Number

Сума оплати

Tip

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

1000.00

Warning

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

1000
1000.0
1,000.0
1,000.00

order_currency

Status
colourGreen
titleобов'язковий

UAH

Валюта

Info

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

order_description

Status
colourGreen
titleобов'язковий

String

Опис

Note

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

Max 255 символів

payer_ip

Status
colourGreen
titleобов'язковий

Number

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

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

Note

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

term_url_3ds

Status
colourGreen
titleобов'язковий

String

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

Max 255 символів

card_number

Status
colourGreen
titleобов'язковий

Number

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

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

card_exp_month

Status
colourGreen
titleобов'язковий

Number

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

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

card_exp_year

Status
colourGreen
titleобов'язковий

Number

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

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

card_cvv2

Status
colourGreen
titleобов'язковий

Number

CVV код

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

payer_email

Status
colourGreen
titleобов'язковий

String

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

Info

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

Info

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

Max 255 символів

payer_phone

Status
colourGreen
titleобов'язковий

Number

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

Info

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

req_token

Status
colourGreen
titleобов'язковий

Y
N

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

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

recurring_init

Status
colourGreen
titleобов'язковий

Y
N

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

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

hash

Status
colourGreen
titleобов'язковий

String

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

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

auth

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

Y
N

HOLD коштів

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

async

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

Y
N

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

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

channel_id

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

String

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

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

payer_first_name

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

String

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

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

payer_last_name

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

String

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

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

payer_address

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

String

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

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

payer_country

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

String

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

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

payer_state

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

String

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

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

payer_city

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

String

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

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

payer_zip

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

String

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

Max 32 символи

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

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

String

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


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

Expand
titleПриклад запиту на PHP
Code Block
languagephp
<?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(   strtoupper(
           strrev(                 strrev($data['payer_email']).
                    ($client_pass).        $client_pass.
         strrev(                   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);
Info

Postman Collection


Тестування

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


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

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

Callback

Expand
titleОсобливості роботи з Callback
Include Page
Робота з Callback
Робота з Callback
Expand
titleБезпека
Include Page
Безпека
Безпека

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

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


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

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


Include Page
Callback / Response - SALE з 3DS
Callback / Response - SALE з 3DS

Include Page
Callback / Response - SALE без 3DS
Callback / Response - SALE без 3DS

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

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