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

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


Зміст

 

 


Опис

 

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

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

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

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


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

 

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

API параметри

 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action
ОБОВ'ЯЗКОВИЙ

CREDIT2CARD

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

 

client_key
ОБОВ'ЯЗКОВИЙ

String

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

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

order_id
ОБОВ'ЯЗКОВИЙ

String

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

Max 255 символів

order_amount
ОБОВ'ЯЗКОВИЙ

Number

Сума виплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

order_currency
ОБОВ'ЯЗКОВИЙ

UAH

Валюта виплати

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

order_description
ОБОВ'ЯЗКОВИЙ

String

Опис виплати

Max 1024 символів

card_token
ОБОВ'ЯЗКОВИЙ

String

Токен картки

card_token з коллбекупервинної транзакції

first_name
ОБОВ'ЯЗКОВИЙ

String

Ім'я клієнта

Max 256 символів

last_name
ОБОВ'ЯЗКОВИЙ

String

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

Max 256 символів

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

String

Телефон клієнта

Max 32 символа

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

String

Валідний емейл клієнта

Max 128 символів

hash
ОБОВ'ЯЗКОВИЙ

String

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

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

taxn
ОБОВ'ЯЗКОВИЙ

String

ІПН клієнта

 

channel_id
Не обов'язковий

String

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

Використовується для додаткового банківського термінала

agreement_num
не Обов'язковий

String

Номер кредитного договору МФО з клієнтом

Max 30 символів

Обов'язковий параметр для кредитних організацій


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

 

<?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_token'] = '*****'; $data['card_exp_month'] ='01'; // тільки для тестових реквізитів; $data['card_exp_year'] = '2024'; // тільки для тестових реквізитів; $data['hash'] = md5( strtoupper( $client_pass. strrev($data['card_token']) ) ); $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);

Тестування

 

Для тестування використайте card_token отриманий з Callback при успішній транзакції з використанням наших тестових реквізитів.


Перевірка транзакції

 


Callback & Responce

 

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

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

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' => 'CREDIT2CARD', '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":"CREDIT2CARD", "result":"SUCCESS", "status":"WAITING", "order_id":"5774734", "trans_id":"28262-75863-96848", "trans_date":"2020-02-25 10:46:26" }

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

 


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