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 параметры запроса

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

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.