/
Повернення

Повернення

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

Запит на повернення необхідно проводити не раніше чим через 10 хв після отримання коллбеку про успішну оплату. В іншому випадку ви отримаєте помилку.


Зміст

 


Опис

 

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

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


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

 

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

Вимоги

 

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


API параметри

 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action
ОБов'язковий

CREDITVOID

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

 

client_key
ОБов'язковий

String

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

Ключ надається на пошту мерчанту і має відповідати ключу по якому було проведено оплату

trans_idОБов'язковий

String

ID оплати PSP Platon

 

amount
ОБов'язковий

Number

Сума повернення

Має бути меньше або рівна сумі оплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

hash
ОБов'язковий

String

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

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

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

immediately
не ОБов'язковий

Y

Ознака швидкого повернення.

Без передачі цього параметра запит на поверення буде оброблятися стандартно протягом години.

Якщо оплата в холді, то необхідно спочатку провести списання з холду і тільки після цього робити повернення.


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

 

<?php $client_pass = '***'; $data['client_key'] = '***'; $data['action'] = 'CREDITVOID'; $data['trans_id'] = '19848-26243-92097'; $data['amount'] = '85.00'; $card = '411111******1111'; $email = ''; // пошта з транзакції оплати, якщо була вказана $data['hash'] = md5( strtoupper( strrev($email). $client_pass. $data['trans_id']. strrev( substr($card,0,6). substr($card,-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);

Callback та Response

 

Проміжна відповідь:

{ "action":"CREDITVOID", "result":"ACCEPTED", "order_id":"27859-52747-0554", "trans_id":"27859-54289-00657" }

При успішному поверненні:

Callback відправляється через годину після успішної авторизації.

array ( 'id' => '27860-50312-05387', 'order' => '27860-49622-7227', 'status' => 'REFUND', 'rrn' => NULL, 'approval_code' => NULL, 'card' => '**************', 'description' => 'Оплата', 'amount' => '500.00', 'currency' => 'UAH', 'name' => ' ', 'email' => NULL, 'country' => NULL, 'state' => NULL, 'city' => NULL, 'address' => NULL, 'date' => '2020-01-09 21:23:51', 'ip' => '46.133.140.32', 'sign' => '********************************' )

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

Увага! Якщо при запиті на оплату не було вказано email, то під час перевірки sign у підписі callback слід вказати порожнє значення для email.

Callback відправляється через годину після успішної авторизації.

array ( 'action' => 'CREDITVOID', 'result' => 'SUCCESS', 'status' => 'REFUND', 'order_id' => '7428404', 'trans_id' => '30009-01494-16697', 'amount' => '97.00', 'creditvoid_date' => '2020-09-15 07:30:16', 'hash' => '********************************', )

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

Увага! Якщо під час запиту на оплату не було вказано email, то під час перевірки sign у підписі callback слід вказати порожнє значення для email.

Callback відправляється через годину після успішної авторизації.

array ( 'action' => 'CREDITVOID', 'result' => 'SUCCESS', 'status' => 'SETTLED', 'order_id' => '7428404', 'trans_id' => '30009-01494-16697', 'amount' => '97.00', 'creditvoid_date' => '2020-09-15 07:30:16', 'hash' => '********************************', )

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

Увага! Якщо під час запиту на оплату не було вказано email, то під час перевірки sign у підписі callback слід вказати порожнє значення для email.

При помилці запиту:

{ "result":"ERROR", "error_message":"Transaction already refunded" }

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

 

Related content