Versions Compared

Key

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

Цей функціонал буде активовано після вашого запиту в груповому чаті.

Info

API метод працює по білому списку IP адрес. Надайте їх в груповий чат.


Panel
bgColor#EAE6FF

Зміст

Table of Contents
minLevel1
maxLevel2
include
outlinefalse
indent0px
stylecircle
exclude
typelist
class
printablefalse

Panel
bgColor#EAE6FF

Опис

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

Note

При частковому списанні коштів з HOLD залишок автоматично повернеться на картку платника. Використовується у випадку якщо мерчант може надати лише частину товару чи послуг з замовлення.

Note

При відсутності товару або послуги необхідно виконати повернення коштів.

Note

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

Note

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

Note

Відправляти товар або надавати послугу до успішного списання заборонено. На момент списання картка може бути заблокована і отримати кошти буде неможливо.


Panel
bgColor#EAE6FF

Вимоги

Include Page
Вимоги до сайтів та додатків
Вимоги до сайтів та додатків

Panel
bgColor#EAE6FF

API параметри

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action

Status
colourGreen
titleОБов'язковий

CAPTURE

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

client_key

Status
colourGreen
titleОБов'язковий

String

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

Ключ надається на пошту мерчанта і має відповідати ключу по якому було проведено оплату з HOLD

trans_id

Status
colourGreen
titleОБов'язковий

String

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

amount

Status
colourGreen
titleОБов'язковий

Number

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

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

Tip

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

1000.00

Warning

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

1000
1000.0
1,000.0
1,000.00

hash

Status
colourGreen
titleОБов'язковий

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.


Panel
bgColor#EAE6FF

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

scrollingnosrchttps://devplaton.com.ua/invoices/postman-test.htmlstyleheight: 260px;frameborderhide
Expand
titleПриклад запиту на PHP
Code Block
languagephp
<?php
  $client_pass = '***';
  $data['client_key'] = '***';
  $data['action'] = 'CAPTURE';
  $data['trans_id'] = '19848-26243-92097';
  $data['amount'] = '100.00';
  $card = '4111111111111111';
  $data['email'] = ''; // пошта з транзакції оплати, якщо вона була вказана
  $data['hash'] = md5(strtoupper(
              strrev($data['email']).
              $client_pass.
              $data['trans_id'].
              strrev(
                substr($card,0,6).
                substr($card,-4)
              )
            )
          );

$url = 'https://secure.platononline.com/post-unq/';
$crq = curl_init();
curl_setopt($crq, CURLOPT_URL, $url);
curl_setopt($crq, CURLOPT_HEADER, 0);
curl_setopt($crq, CURLOPT_POST, 1);
curl_setopt($crq, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($crq, CURLOPT_POSTFIELDS, http_build_query($data));
$result = curl_exec($crq);
  if (curl_errno($crq)) {
    echo 'ERROR: '.curl_error($crq);
  }else{
    echo $result;
  }
curl_close($crq);
Iframe
Panel
bgColor#EAE6FF

Callback

Expand
titleОсобливості роботи з Callback
Include Page
Робота з Callback
Робота з Callback
Expand
titleБезпека
Include Page
Безпека
Безпека

При успішному списанні:

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.

Expand
titleResponse при невдалому списанні
Code Block
languagejson
{
  "action":"CAPTURE",
  "result":"DECLINED",
  "status":"PENDING",
  "order_id":"110714",
  "trans_id":"27851-06615-85267",
  "amount":"657.63"
}