Versions Compared

Key

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

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


Зміст

Table of Contents
maxLevel2
indent0px
absoluteUrltrue
stylecircle

Опис

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

Info

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

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

Note

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

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


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

Tip

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

Tip

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

Tip

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

Tip

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


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

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

Опис

Max 255 символів

card_token

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

String

Токен картки

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

payer_ip

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

Number

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

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

payer_email

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

String

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

Info

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

Info

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

Max 256 символів

term_url_3ds

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

String

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

Max 255 символів

hash

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

String

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

Code Block
languagephp
md5(
  strtoupper(
    strrev($payer_email).
    $client_pass.
    strrev($card_token)
  )
)
Info

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

payer_first_name

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

String

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

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

payer_last_name

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

String

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

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

payer_address

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

String

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

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

payer_phone

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

Number

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

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

customer_wallet

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

String

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

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

async

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

Y
N

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

Note

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

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

channel_id

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

String

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

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

auth

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

Y
N

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

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

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

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

String

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

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


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

Expand
titleПриклад запиту на PHP
Info

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

Code Block
languagephp
<?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);
Iframescrollingnosrchttps://devplaton.com.ua/invoices/postman-test.htmlframeborderhidestyleheight: 260px;
Info

Postman Collection


Тестування

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

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

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

  • C2A оплата

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


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

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

Callback

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

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

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


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

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


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

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

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

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"}

Warning

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

Tip

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


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

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