Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

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

Warning

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


Зміст

Table of Contents
maxLevel2
minLevel1
indent0px
absoluteUrltrue
stylecircle

Опис

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

Note

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


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

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

Вимоги

Expand
titleTLS 1.2

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


API параметри

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action

Status
colourGreen
titleОБов'язковий

CREDITVOID

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

client_key

Status
colourGreen
titleОБов'язковий

String

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

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

trans_id

Status
colourGreen
titleОБов'язковий

String

ID оплати PSP Platon

amount

Status
colourGreen
titleОБов'язковий

Number

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

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

Tip

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

1000.00

Warning

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

1000
1000.0
1,000.0
1,000.00

hash

Status
colourGreen
titleОБов'язковий

String

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

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

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


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

Expand
titleПриклад запиту на PHP
Code Block
languagephp
<?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);
Iframescrollingnosrchttps://devplaton.com.ua/invoices/postman-test.htmlstyleheight: 260px;frameborderhide
Info

Postman Collection


Callback та Response

Expand
titleОсобливості роботи з Callback
Include Page
Робота з Callback
Робота з Callback
Expand
titleБезпека
Include Page
Безпека
Безпека

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

Expand
titleResponse при успішній авторизації запиту на повернення
Code Block
languagejson
{
  "action":"CREDITVOID",
  "result":"ACCEPTED",
  "order_id":"27859-52747-0554",
  "trans_id":"27859-54289-00657"
}

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

Expand
titleCallback при успішному поверненню по протоколу https://secure.platononline.com/payment/auth
Info

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

Code Block
languagephp
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' => '********************************'
)
Info

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

Внимание! Если при запросе на оплату не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email.

Expand
titleCallback при успішному ПОВНОМУ поверненню при оплаті по протоколу https://secure.platononline.com/post-unq/ або https://secure.platononline.com/post/
Info

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

Code Block
languagephp
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' => '********************************',
)
Info

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

Внимание! Если при запросе на оплату не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email.

Expand
titleCallback при успішному ЧАСТКОВОМУ поверненню при оплаті по протоколу https://secure.platononline.com/post-unq/ або https://secure.platononline.com/post/
Info

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

Code Block
languagephp
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' => '********************************',
)
Info

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

Внимание! Если при запросе на оплату не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email.

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

Expand
titleResponse при неуспешной авторизации запроса на возврат
Code Block
languagejson
{
  "result":"ERROR",
  "error_message":"Transaction already refunded"
}

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

Expand
titleСписок помилок та рішень
Include Page
Помилки та рішення при запитах
Помилки та рішення при запитах