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


note

Зміст

Зміст


note

Опис

Опис

Оплата в один клик позволяет провести платеж без ввода карточных данных. Для оплаты вам необходимо создать кнопку и разместить на вашем сайте / приложении.

Платіжна форма в цьому виді запиту відсутня.

Кліенту не потрібно вводити CVV.

Якщо необхідна оплата без 3DS перевірки - погодьте це з вашим менеджером PSP Platon.

В запиті використовується раніше збережена картка у вигляді зашифрованого card_token, який можна отримати з callback при першій оплаті карткою або при верифікації.


note

Особливості токенів

Особливості токенів

По одній і тій же картці токен можна отримати декілька разів. При цьому самі ці токени будуть різні і готові до використання.

Токен можна використовувати на всіх API ключах та юр. особах.

Якщо при спробі оплати ви отримали відповідь 102: Token is not active це значить, що токен не активний і провести транзакцію по ньому не можливо. Такий токен потрібно видалити з вашої бази даних та надати клієнту можливість оплати іншою карткою.

Термін дії CARD_TOKEN відповідає терміну дії картки.


note

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

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

  • Привести сайт / додаток до відповідності вимогам.
  • Проведіть попередню оплату карткою або верифікацію для отримання card_token.
  • Інтегруйте запит відповідно до цього API методу.
  • Передати тех підтримці PSP Platon посилання для Callback (якщо раніше не було вказано).
  • Передати тех підтримці PSP Platon ваші IP адреси серверів сайту або про те, що буде використовуватись додаток (в цьому випадку обмеження по IP будуть зняті).
  • Відобразити клієнту на сайті / додатку кнопку для оплати з маскою картки для розуміння клієнта яка картка буде використана.
  • Відправити API запит використовуючи card_token.
  • Отримати 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

Опис

Max 255 символів

card_token

String

Токен картки

card_token з коллбека попередньої оплати

payer_ip

Number

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

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

payer_email

String

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

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

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

Max 256 символів

term_url_3ds

String

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

Max 255 символів

hash

String

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

md5(
  strtoupper(
    strrev($payer_email).
    $client_pass.
    strrev($card_token)
  )
)

Якщо email не було вказано в першій оплаті де було отримано токен, то вкажіть пусте значення email.

payer_first_name

String

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

Мах 32 символи
Вкажіть NA, якщо немає даних

payer_last_name

String

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

Мах 32 символи
Вкажіть NA, якщо немає даних

payer_address

String

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

Мах 255 символів
Вкажіть 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 символи
Вкажіть NA, якщо немає даних

payer_phone

Number

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

В форматі “380XXXXXXXXX”
Max 32 символи

customer_wallet

String

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

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

async

Y
N

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

В асинхронному режимі обов'язкове використання коллбеків.

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

channel_id

String

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

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

auth

Y
N

HOLD коштів на картці платника

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

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

String

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

Max 1024 символи в кажному ext полі


note

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

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

Content-Type: form-data или x-www-form-urlencoded

<?php
  $client_pass='***';
  $data['action']='SALE';
  $data['client_key']='***';
  $data['order_id']='458-3453';
  $data['order_amount']='1000.00';
  $data['order_currency']='UAH';
  $data['order_description']='test';
  $data['card_token'] = '*****';
  $data['payer_phone']='380111111111';
  $data['payer_email']='sale@gmail.com';
  $data['payer_ip']='213.186.115.164';
  $data['term_url_3ds']='http://google.com';
  $data['hash'] = md5(
            strtoupper(
              strrev($data['payer_email']).
              $client_pass.
              strrev($data['card_token'])
            )
          );

$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

Тестування

Тестування

В цілях тестування використовуйте card_token отриманий з коллбека успішної транзакції по одному з вказаних методів:

  • IE оплата карткою

  • Верифікація картки

  • C2A оплата

  • Виплата на картку по повному номеру картки


note

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

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


note

Callback

Callback


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

Стандартний режим. Передавати async = N не потрібно.


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

Цей режим вмикається при передачі в запиті параметру async = Y.




note

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

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

Якщо у відповіді на запит ви отримали одну з вказаних нижче помилок, вам необхідно видалити цей протермінований токен:

  • {"result":"ERROR","error_message":"Invalid card_exp_month, card_exp_year"}

  • {"result":"ERROR","error_message":"Invalid card_exp_month"}

  • {"result":"ERROR","error_message":"Initial transaction too old"}

Ці card_token заблоковані та не підлягають відновленню по причині блокування / закінчення терміну дії картки.

Необхідно отримати новий card_token провівши нову оплату чи верифікацію.


note

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

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