Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 12 Next »

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

Ваш сайт має працювати за схемою HTTPS і підтримувати протокол TLS 1.2.



Опис

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

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

На 25 день відбудеться автоматичне списання коштів, якщо за цей період вами не було здійснено жодних дій

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


API параметри запиту

HTTP METHOD: POST

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


Параметри

Значення

Опис

Особливості

Обов'язково

action

CAPTURE

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

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

ТАК

client_key

String

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

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

ТАК

trans_id

String

ID транзакції Platon

ID оплати в системі PSP Platon

ТАК

amount

Number

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

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

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

ТАК

split_rules

String

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

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

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

split_rules = {
"okpo1":"amount1",
"okpo2":"amount2"
}

ТАК

hash

String

Контрольний підпис

md5(
  strtoupper(
    strrev(email).
    client_pass.
    trans_id.
    strrev(
      substr(card_number,0,6).
      substr(card_number,-4)
    )
  )
)

Якщо в запиті на оплату не було вказано email, то необхідно залишити пусте значення email.

ТАК


Приклад запиту

Для перегляду прикладу розкрийте список

 Пример запроса на PHP
<?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>


Работа с Callback

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


Callback и Response

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

 Callback при успешном списании
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' => '********************************',
)

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

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

 Response при успешном списании
{
  "action":"CAPTURE",
  "result":"SUCCESS",
  "status":"SETTLED",
  "order_id":"110714",
  "trans_id":"27851-06615-85267",
  "amount":"657.63"
}
 Callback при неуспешном списании
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' => '********************************',
)

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

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

  • No labels