Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

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


Содержание


Описание

Данный метод позволяет вернуть плательщику денежные средства.

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

Возврат средств возможен только при отправке запроса с API ключа и юр. лица, что были использованы для оплаты.


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

  • Интегрировать запрос согласно данного API.
  • Передать тех поддержке PSP Platon ссылку для Callback (если ранее не было указано).
  • Сообщить в тех поддержке PSP Platon ваши IP адреса сервера сайта или о том, что будет использоваться приложение (в этом случае ограничения по IP будут сняты).
  • После успешной оплаты тестовой / реальной картой провести запрос на возврат.
  • Получить Callback и Response.
  • Отобразить плательщику на сайте / приложении возврат средств.

Требования

 TLS 1.2

Необходима поддержка протокола 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 транзакции Platon

ID транзакции в системе Platon

amount
ОБЯЗАТЕЛЬНО

Number

Сумма возврата

Должна быть меньше или равна сумме списания

Верный вариант

1000.00

Неверные варианты

1000
1000.0
1,000.0
1,000.00

hash
ОБЯЗАТЕЛЬНО

String

Контрольная подпись

md5(
  strtoupper(
    $pass.
    $order_id
  )
)

Примеры запроса

 Пример запроса на PHP
<?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(
                      $pass.
                      $order_id
                    )
                  );
          
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://secure.platononline.com/post-unq/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Callback и Response

 Особенности работы с Callback
Unable to render {include} The included page could not be found.
 Безопасность
Unable to render {include} The included page could not be found.

Промежуточный ответ:

 Response при успешной авторизации запроса на возврат
{
  "action":"CREDITVOID",
  "result":"ACCEPTED",
  "order_id":"27859-52747-0554",
  "trans_id":"27859-54289-00657"
}

При успешном возврате:

 Callback при успешном возврате при оплате по протоколу https://secure.platononline.com/payment/auth

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, то при проверке sing в подписи коллбека следует указать пустое значение для email.

 Callback при успешном ПОЛНОМ возврате при оплате по протоколу https://secure.platononline.com/post-unq/

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, то при проверке sing в подписи коллбека следует указать пустое значение для email.

 Callback при успешном ЧАСТИЧНОМ возврате при оплате по протоколу https://secure.platononline.com/post-unq/

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, то при проверке sing в подписи коллбека следует указать пустое значение для email.

При ошибке запроса:

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

Дополнительная проверка возврата

Для получения информации о возврате в случае, если ваша система не смогла принять Callback, Response или по другой причине, можно воспользоваться дополнительными API запросами проверки:


Ошибки запросов

 Список ошибок, их причин и возможных решений.
Unable to render {include} The included page could not be found.

Связанные разделы

Другие методы возвратов:

  • No labels