/
A2C виплата на картку по номеру картки

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


Зміст

 


Опис

 

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

Увага! Цей запит на виплату в цілях безпеки використовує перевірку унікальності по order_id для виключення випадків дублів запитів на видачу. У випадку відправки мерчантом декількох однакових запитів з різницею в часі від менше 1 сек до 10 хв (що не дозволить системі за такий термін провести перевірку на унікальність) - PSP Platon не бере на себе відповідальність за відшкодування лишніх виданих коштів.


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

 

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

Вимоги

 

Необхідна підтримка протоколу TLS не нижче версії 1.2


API параметри

 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

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

CREDIT2CARD

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

 

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

String

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

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

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

String

Унікальний ордера мерчанта

Max 255 символів

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

Number

Сума виплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

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

UAH

Валюта

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

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

String

Опис

Max 1024 символа

card_number
status:Обов'язковий

Number

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

16 символів

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

String

Ім'я отримувача

Max 256 символів

Обов'язково, якщо order_amount більше або рівний 30000 грн.

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

String

Прізвище отримувача

Max 256 символів

Обов'язково, якщо order_amount більше або рівний 30000 грн.

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

String

Телефон отримувача

Max 32 символи

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

String

Валідний email отримувача

Max 128 символів

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

String

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

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

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

String

ІНН отримувача

Обов'язково, якщо order_amount більше або рівний 30000 грн.

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

Files

Підписані документи отримувача (паспорт, ІНН)

 

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

String

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

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

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

Y

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

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


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

 

<?php $client_pass = '***'; $data['action'] = 'CREDIT2CARD'; $data['client_key'] = '***'; $data['order_id'] = 'X1345'; $data['order_amount'] = '1000.00'; $data['order_currency'] = 'UAH'; $data['order_description'] = 'credit test'; $data['card_number'] = '4111111111111111'; $data['card_exp_month'] ='01'; // тільки для тестових реквізитів; $data['card_exp_year'] = '2024'; // тільки для тестових реквізитів; $data['hash'] = md5( strtoupper( $client_pass. strrev( substr($data['card_number'],0,6). substr($data['card_number'],-4) ) ) ); $url = 'https://secure.platononline.com/p2p-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);

Тестування

 


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

 


Callback та Response

 

При успішній виплаті:

array ( 'action' => 'CREDIT2CARD', 'result' => 'SUCCESS', 'status' => 'SETTLED', 'order_id' => '1328876', 'trans_id' => '27894-89059-67608', 'trans_date' => '2020-01-13 20:55:05', 'hash' => '********************************', 'card_hash' => 'cc1c30cfbfe57b068b1f6c4c336791282256b2efc8cf52e85cc2e5fa2a62047a', 'fee_type' => 'TRANSACTION', 'fee' => '0.5', )

Для перевірки достовірності отриманого callback, рекомендуємо звіряти підпис hash за формулою md5(strtoupper(client_pass.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Параметр

Опис

Параметр

Опис

action

CREDIT2CARD

result

SUCCESS

status

SETTLED

order_id

Унікальний ордер ID транзакції у системі мерчанта

trans_id

Унікальний ордер ID транзакції у системі Platon

trans_date

Час проведення транзакції у форматі UTC (YYYY-MM-DD HH-MM-SS)

card_token

Зашифрований токен карти для наступних транзакцій по card_token

card_hash

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

Цей параметр дасть вам можливість у вашій системі:

  • Прив'язати картку під клієнтом.

  • Перевірити чи не використовував інший клієнт цю карту.

  • Перевірити які кредити, товари та послуги погашаються цією карткою.

  • Відстежувати шахрайство, коли клієнт використовує ту саму картку з іншого облікового запису, наприклад, щоб повторно скористатися акцією.

Якщо ви бажаєте використовувати цей функціонал, будь ласка, повідомте нам про його включення.

fee_type

Ознака яким чином стягується комісія:

  • ACT - за актами.

  • TRANSACTION - потранзакційно.

Якщо ви бажаєте використовувати цей функціонал, будь ласка, повідомте нам про його включення.

fee

Сума комісії з мерчанта з транзакції у ГРН

Якщо ви бажаєте використовувати цей функціонал, будь ласка, повідомте нам про його включення.

hash

Зашифрований перевірочний підпис

{ "action":"CREDIT2CARD", "result":"SUCCESS", "status":"SETTLED", "order_id":"1328876", "trans_id":"27894-89059-67608", "trans_date":"2020-01-13 20:55:05" }

При невдалій виплаті:

array ( 'action' => 'CREDIT2CARD', 'result' => 'DECLINED', 'status' => 'DECLINED', 'order_id' => '560404', 'trans_id' => '27894-80158-07868', 'trans_date' => '2020-01-13 20:40:15', 'decline_reason' => '9858: Restricted Card', 'hash' => '********************************', 'card_hash' => '31c9ea919afdc5361ca31cc9e3c4874af6bdd374601e7ef8e6c72b3d9ef0933f', )

Для перевірки достовірності отриманого callback, рекомендуємо звіряти підпис hash за формулою md5(strtoupper(client_pass.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Параметр

Опис

Параметр

Опис

action

CREDIT2CARD

result

DECLINED

status

DECLINED

order_id

Унікальний ордер ID транзакції у системі мерчанта

trans_id

Унікальний ордер ID транзакції у системі Platon

trans_date

Час проведення транзакції у форматі UTC (YYYY-MM-DD HH-MM-SS)

card_token

Зашифрований токен карти для наступних транзакцій поcard_token

decline_reason

Причина скасування транзакції

hash

Зашифрований перевірочний підпис

{ "action":"CREDIT2CARD", "result":"DECLINED", "status":"DECLINED", "order_id":"560404", "trans_id":"27894-80158-07868", "trans_date":"2020-01-13 20:40:15", "decline_reason":"9858: Restricted Card" }

Проміжна відповідь у випадку технічних негараздів:

При отриманні Callback з таким статусом необхідно очікувати Callback з фінальним статусом транзакції.

Симулювати такий Callback в тестовому середовищі неможливо.

array ( 'action' => 'CREDIT2CARDTOKEN', 'result' => 'SUCCESS', 'status' => 'WAITING', 'order_id' => '5774734', 'trans_id' => '28262-75863-96848', 'trans_date' => '2020-02-25 10:46:26', 'hash' => '********************************', )

Для перевірки достовірності отриманого callback, рекомендуємо звіряти підпис hash за формулою md5(strtoupper(client_pass.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Параметр

Опис

Параметр

Опис

action

CREDIT2CARD

result

SUCCESS

status

WAITING

order_id

Унікальний ордер ID транзакції у системі мерчанта

trans_id

Унікальний ордер ID транзакції у системі Platon

trans_date

Час проведення транзакції у форматі UTC (YYYY-MM-DD HH-MM-SS)

card_token

Зашифрований токен карти для наступних транзакцій по card_token

hash

Зашифрований перевірочний підпис

При отриманні Response з таким статусом необхідно очікувати Response з фінальним статусом транзакції.

Симулювати такий Response в тестовому середовищі неможливо.

{ "action":"CREDIT2CARDTOKEN", "result":"SUCCESS", "status":"WAITING", "order_id":"5774734", "trans_id":"28262-75863-96848", "trans_date":"2020-02-25 10:46:26" }

Помилки при виплатах

 


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

 

Related content