/
IA оплата карткою (Server - Server)

IA оплата карткою (Server - Server)

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

Доступно лише при наявності PCI DSS сертифікації у мерчанта.


Зміст

 


Опис

 

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


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

 

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

Опис

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

Max 255 символів

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

Number

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

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

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

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

String

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

Max 255 символів

card_numberstatus:обов'язковий

Number

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

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

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

Number

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

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

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

Number

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

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

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

Number

CVV код

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

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

String

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

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

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

Max 255 символів

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

Number

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

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

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

Y
N

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

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

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

Y
N

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

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

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

String

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

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

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

Y
N

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

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

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

String

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

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

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

String

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

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

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

String

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

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

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

String

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

Max 256 символів
Вказати 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 символи

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

String

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

 


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

 

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

Тестування

 

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


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

 


Callback

 


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

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


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

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




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

 

Related content