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сылка для отправки запросов):

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

HTTP METHOD:

Status
colourGreen
titlePOST

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

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


Параметр

Значение

Описание

Особенности

Обязательно

action

CAPTURE

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

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

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

split_rules

String

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

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

Note

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

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

Status
colourGreen
titleДа

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.

Status
colourGreen
titleДа


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

:

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

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$split_rules = 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="ext10split_rules" value="<?=$ext10$split_rules?>" />
      <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 Removed

Получение статуса транзакции в 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

  • Отправка Callback на несколько адресов (по умолчанию на один)

Работа с Callback

Info

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


Callback и Response

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

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 запросами проверки:

  • Получение статуса оплаты по ордеру мерчанта

  • Получение статуса оплаты по ордеру Platon

  • Получение деталей оплаты по ордеру Platon