Skip to end of metadata
Go to start of metadata

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

Compare with Current View Page History

« Previous Version 46 Current »

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

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


Зміст


Опис

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

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

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

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

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

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


Вимоги

 SSL сертифікат

У вашого сайту має бути валідний SSL сертифікат.

Для перевірки валідності та терміну дії вашого SSL сертифіката рекомендуємо скористатися сервісом за посиланням.

 TLS 1.2

Обов'язкова підтримка протоколу TLS не нижче версії 1.2

 У випадку регулярних списань без участі платника
  • Повідомити платника про умови підписки та регулярних списань та отримати підтвердження про згоду з умовами

  • Розмістити договір публічної оферти та отримати підтвердження від платника про згоду з умовами

  • Надати платнику можливість відмінити підписку

  • Згідно правил МПС дозволена лише одна спроба списання коштів з платника за добу


API параметри

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action
ОБОВ'ЯЗКОВИЙ

CAPTURE

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

client_key
ОБОВ'ЯЗКОВИЙ

String

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

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

trans_id
ОБОВ'ЯЗКОВИЙ

String

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

amount
ОБОВ'ЯЗКОВИЙ

Number

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

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

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

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 = '***';
  $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);


Callback

 Особливості роботи з Callback

URL для Callback

Для отримання Callback відправте URL на ваш обробник в груповий чат з вказанням API ключа для якого потрібно прописати посилання. Посилання для Callback вказується на боці PSP Platon.


IP адреси

Callback будуть надходити з IP:
78.140.172.231
78.140.135.130
167.99.253.235
62.113.223.114
62.113.223.116
212.83.61.161
185.172.90.66
185.172.90.74
185.172.90.75
185.172.90.115
185.172.90.119


Очікувана відповідь на Callback

Після відправки Callback у відповідь PSP Platon має отримати HTTP код 200.


Помилки при відправці Callback

Якщо Callback не вдалося відправити або було отримано не HTTP код 200, будуть проведені додаткові повторні спроби відправки в проміжках часу 1 хв, 5 хв, 10 хв, 15 хв, 30 хв, 60 хв.


Перевідправка Callback

Для перевідправки Callback прохання повідомити в груповий чат список необхідних ордерів.

 Безпека

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


Довірені IP

Для забезпечення додаткової безпеки рекомендуємо опціонально додати в білий список доступів POST запити тільки з наших довірених IP:
78.140.172.231
78.140.135.130
167.99.253.235
62.113.223.114
62.113.223.116
212.83.61.161
185.172.90.66
185.172.90.74
185.172.90.75
185.172.90.115
185.172.90.119


Секретність API доступів

Не тримайте у відкритому доступі API ключ та API пароль, а також не надавайте обидва ці параметри в групові робочі чати, в тому числі з нами. Для перевірки деталей представники PSP Platon можуть попросити у вас лише API ключ, пароль треба тримати в таємниці.


Секретність кабінету

Не розголошуйте логін та пароль від вашого особистого кабінету третім особам. У випадку якщо доступ був втрачений зверніться в груповий чат. Пароль від особистого кабінету діє 30 днів. Рекомендуємо оновлювати пароль до закінчення терміну дії в 30 днів.


Секретність посилання для Callback

Не залишайте посилання для Callback у відкритому доступі на вашому ресурсі.


Сторінка успішної оплати не гарантія успіху оплати

Не використовуйте факт переходу платника на сторінку успіщної оплати як признак успішної оплати. Статус транзакції та деталі оплати необхідно отримати тільки в Callback або в особистому кабінеті PSP Platon.


Звірка даних в Callback

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

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

 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.

 Response при невдалому списанні
{
  "action":"CAPTURE",
  "result":"DECLINED",
  "status":"PENDING",
  "order_id":"110714",
  "trans_id":"27851-06615-85267",
  "amount":"657.63"
}
  • No labels