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 оплати в системі PSP Platon

Status
colourGreen
titleТАК

amount

Number

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

Має бути меньше або рівна сумі в HOLD

Tip

Вірний варіант

1000.00

Warning

Невалідні варіанти

1000
1000.0
1,000.0
1,000.00

Status
colourGreen
titleТАК

split_rules

String

Суми до списання та ОКПО з розщепленого платежу

Передача даних для списання у форматі JSON. Підтвердження списання може бути частковим, але в сумі, що дорівнює або є меншою від початкової частини платежу, зарахованого на кожне ОКПО.

Note

Загальна сума списання обов'язково має дорівнювати сумі розщепленого платежу.
amount1 + amount2 = amount

Code Block
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 = ''; // почта из первоначальной транзакции, если не была указана оставить пустое значение
  $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="split_rules" value="<?=$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

  • Безопасность

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


    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 по формуле перевірки достовірності отриманого 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 по формуле перевірки достовірності отриманого callback рекомендуємо звіряти підпис hash за формулою:
    md5(strtoupper(strrev(email) . client_pass . trans_id . strrev(substr(card, 0, 6) . substr(card, -4)))).

    Внимание! Если при первоначальном запросе Увага! Якщо під час початкового запиту на оплату не был указан було вказано email, то следует указать пустое значение слід вказати порожнє значення для email.