Versions Compared

Key

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

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

Note

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


Table of Contents

Описание:

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

Также рекомендуем ознакомиться с разделом Особенности HOLD

Note

На 25 день произойдет автоматическое списание средств, если за этот период вами не было произведено никаких действий

Note

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


API Endpoint (cсылка для отправки запросов):

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


Описание параметров запроса:

Параметр

Значение

Описание

Особенности

Обязательно

action

CAPTURE

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

Только одно значение

Да

client_key

String

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

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

Да

trans_id

String

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

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

Да

amount

Number

Сумма списания

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

Tip

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

1000.00

Warning

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

1000
1000.0
1,000.0
1,000.00

Да

ext10

String

Суммы к списанию и ОКПО с расщепленного платежа

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

Note

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

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

Да

hash

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 = '***';
  $client_key = '***';
  $action = 'CAPTURE';
  $trans_id = '19848-26243-92097';
  $amount = '300.00';
  $card = '4111111111111111';
  $email = ''; // почта из первоначальной транзакции, если не была указана оставить пустое значение
  $ext10 = json_encode(array('12345678' => '100.00','87654321' => '200.00'));
  $hash = md5(
            strtoupper(
              strrev($email).
              $client_pass.
              $trans_id.
              strrev(
                substr($card,0,6).
                substr($card,-4)
              )
            )
          );
?>

<!DOCTYPE html>
  <html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Capture</title>
  </head>
  <body onload="javascript:document.forms[0].submit()">
    <form action="https://secure.platononline.com/post-unq/" method="post">
      <input type="text" name="action" value="<?=$action?>" />
      <input type="text" name="client_key" value="<?=$client_key?>" />
      <input type="text" name="trans_id" value="<?=$trans_id?>" />
      <input type="text" name="amount" value="<?=$amount?>" />
      <input type="text" name="ext10" value="<?=$ext10?>" />
      <input type="text" name="hash" value="<?=$hash?>" />
    </form>
  </body>
</html>

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

Дебагинг недоставленных Callback:

С целью дебагинга работы вашего сервера на ошибки получения Callback можем предоставить вам телеграм бот, куда будут поступать тело недоставленных вам Callback и информация об HTTP статусе.

Для настройки телеграм бота обратитесь в ваш груповой чат с просьбой подключить его вам.

Image RemovedImage Added

Получение статуса транзакции в Callback и Response:

Tip

Ответы будут поступать с наших IP:
78.140.172.231
62.113.223.114
78.140.135.130
167.99.253.235
185.172.90.66
185.172.90.115
185.172.90.119

Info

Для получения коллбеков отправьте ссылку на ваш обработчик в ваш групповой чат. Ссылка для коллбеков прописывается на стороне Platon.

После отправки коллбека в ответ Platon должен получить код HTTP 200 OK. Если коллбек не удалось доставить будет произведено до 5 попыток повторной отправки в течение 60 секунд.

Опциональные варианты активация которых происходит по вашему обращению в групповом чате:

  • Коллбеки в формате JSON

  • Basic Authorization

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

Expand
titleCallback при успешном списании
Code Block
languagephp
array (
  'action' => 'SALE',
  'result' => 'SUCCESS',
  'status' => 'SETTLED',
  'order_id' => '1974133',
  'trans_id' => '27841-94347-36138',
  'trans_date' => '2020-01-07 17:50:34',
  'descriptor' => NULL,
  'auth_code' => '',
  'hash' => '********************************',
)
Info

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

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

Expand
titleResponse при успешном списании
Code Block
languagejson
{
  "action":"CAPTURE",
  "result":"SUCCESS",
  "status":"SETTLED",
  "order_id":"110714",
  "trans_id":"27851-06615-85267",
  "amount":"657.63"
}
Expand
titleCallback при неуспешном списании
Code Block
languagephp
array (
  'action' => 'SALE',
  'result' => 'DECLINED',
  'status' => 'PENDING',
  'order_id' => '1974133',
  'trans_id' => '27841-94347-36138',
  'trans_date' => '2020-01-07 17:50:34',
  'descriptor' => NULL,
  'auth_code' => '',
  'hash' => '********************************',
)
Info

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

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


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

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