/
Оплата в 1 клік по CARD_TOKEN (Server - Server)

Оплата в 1 клік по CARD_TOKEN (Server - Server)

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


Зміст

 


Опис

 

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

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

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

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

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


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

 

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

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

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

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


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

 

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

Вимоги

 


API параметри

 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

Параметр

Значення

Опис

Особливості

action
status:обов'язковий

SALE

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

 

client_key
status:обов'язковий

String

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

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

order_id
status:обов'язковий

String

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

Max 32 символи

order_amount
status:обов'язковий

Number

Сума оплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

order_currency
status:обов'язковий

UAH

Валюта

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

order_description
status:обов'язковий

String

Опис

Max 255 символів

card_token
status:обов'язковий

String

Токен картки

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

payer_ip
status:обов'язковий

Number

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

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

payer_email
status:обов'язковий

String

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

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

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

Max 256 символів

term_url_3ds
status:обов'язковий

String

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

Max 255 символів

hash
status:обов'язковий

String

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

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

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

payer_first_name
status:не обов'язковий

String

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

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

payer_last_name
status:не обов'язковий

String

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

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

payer_address
status:не обов'язковий

String

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

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

payer_country
status:не обов'язковий

String

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

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

payer_state
status:не обов'язковий

String

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

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

payer_city
status:не обов'язковий

String

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

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

payer_zip
status:не обов'язковий

String

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

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

payer_phone
status:не обов'язковий

Number

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

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

customer_wallet
status:не обов'язковий

String

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

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

async
status:не обов'язковий

Y
N

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

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

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

channel_id
status:не обов'язковий

String

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

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

ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, ext9, ext10
status:не обов'язковий

String

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

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


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

 

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);

Тестування

 

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

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

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

  • C2A оплата

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


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

 


Callback

 


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

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


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

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




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

 

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

  • {"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 провівши нову оплату чи верифікацію.


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

 

Related content