Versions Compared

Key

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

Этот функционал будет активирован после вашего запроса в групповом чате. Также обязательно сообщите IP адреса, с которых будут отправляться запросы для добавления в белый список.

Note

Ваш сайт должен работать по схеме HTTPS и поддерживать протокол TLS 1.2.


Table of Contents

Описание

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

Note

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


API параметры запроса

HTTP METHOD:

Status
colourGreen
titlePOST

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


Параметр

Значение

Описание

Особенности

Обязательно

action

CREDITVOID

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

Status
colourGreen
titleда

client_key

String

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

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

Status
colourGreen
titleда

trans_id

String

ID транзакции Platon

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

Status
colourGreen
titleда

amount

Number

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

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

Tip

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

1000.00

Warning

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

1000
1000.0
1,000.0
1,000.00

Status
colourGreen
titleда

ext10

String

Возврат и ОКПО с расщепленного платежа

Передача данных о возврате в формате JSON. Возврат может быть частичным, но в сумме равной или меньшей изначальной части платежа зачисленного на каждое ОКПО.

Note

Общая сумма возврата обязательно должна равняться сумме расщепленных возвратов.
amount1 + amount2 = amount

Code Block
languagejson
ext10 = {
"okpo1":"amount1",
"okpo2":"amount2"
}

Status
colourGreen
titleда

hash

String

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

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

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

Status
colourGreen
titleда


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

Для просмотра примера раскройте список

Expand
titleПример запроса на PHP
Code Block
languagephp
<?php
  $client_pass = '***';
  $client_key = '***';
  $action = 'CREDITVOID';
  $trans_id = '19848-26243-92097';
  $amount = '300.00';
  $card = '41111111111111111';
  $email = '';
  $ext10 = json_encode(array('12345678' => '100.00','87654321' => '200.00'));
  $hash = md5(
            strtoupper(
              $client_pass.
              $trans_id.
              strrev(
                substr($card,0,6).
                substr($card,-4)
              )
            )
          );
          
$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 => array('action' => 'CREDITVOID','client_key' => $client_key, 'trans_id' => $trans_id,'amount' => $amount, 'ext10' => $ext10,'hash' => $hash),
  CURLOPT_HTTPHEADER => array("Content-Type: text/html"),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Iframe
scrollingno
srchttps://devplaton.com.ua/invoices/postman-test.html
frameborderhide
styleheight: 260px;

Проверка платежей

Получить информацию о платежах можно несколькими способами:


Работа с Callback

Info

Рекомендуем ознакомиться с разделами:


Callback и Response

Для просмотра примера раскройте список

Expand
titleResponse при успешной авторизации запроса на возврат
Code Block
languagejson
{
  "action":"CREDITVOID",
  "result":"ACCEPTED",
  "order_id":"27859-52747-0554",
  "trans_id":"27859-54289-00657"
}
Expand
titleCallback при успешном возврате
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
titleResponse при неуспешной авторизации запроса на возврат
Code Block
languagejson
{
  "result":"ERROR",
  "error_message":"Transaction already refunded"
}

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

В ходе проведения запрос вы можете получить разные ошибки. Пожалуйста, ознакомьтесь со списком возможных ошибок, их причин и возможности решения.

Для просмотра примера раскройте список

Expand
titleСписок ошибок и их решение

Ошибка

Причины

Решение

Response: {"result":"ERROR","error_message":"Account error"}

Ваш IP адрес не добавлен в наш белый список.

Обратитесь в тех поддержку для добавления вашего IP в белый список.

Данный функционал вам не подключен.

Обратитесь в тех поддержку для активации функционала.

Запрос отправлен не на нужную ссылку.

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

Response: {"result":"ERROR","error_message":"Incorrect hash"}

Неверно сформирована зашифрованная подпись.

Проверьте верность сформированной подписи. Если ошибку не нашли обратитесь в тех поддержку.

Добавлены параметры, которые не входят в данный запрос.

Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.

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

По данной транзакции ранее уже был выполнен возврат.

Возврат по данной операции проводить не нужно.

Response: {"result":"ERROR","error_message":"Empty action"}

Параметр action заполнен не верно, пуст, или не на первом месте в списке параметров запроса.

Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.

Response: {"result":"ERROR","error_message":"Duplicate request"}

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

Рекомендуем проверить ваш механизм отправки запросов на наличие задвоения.

Response: {"result":"ERROR","error_message":"Service error"}

Ситуация требует внимания сотрудников Platon.

Рекомендуем обратиться в тех саппорт Platon для проверки причины.