/
Списання з HOLD

Списання з HOLD

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

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


Зміст

 


Опис

 

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

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

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

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

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

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


Вимоги

 


API параметри

 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

Параметр

Значення

Опис

Особливості

action
status:ОБов'язковий

CAPTURE

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

 

client_key
status:ОБов'язковий

String

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

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

trans_id
status:ОБов'язковий

String

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

 

amount
status:ОБов'язковий

Number

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

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

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

hash
status:ОБов'язковий

String

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

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

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


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

 

<?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

 

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

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.

{ "action":"CAPTURE", "result":"SUCCESS", "status":"SETTLED", "order_id":"110714", "trans_id":"27851-06615-85267", "amount":"657.63" }

При невдалому списанні:

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.

{ "action":"CAPTURE", "result":"DECLINED", "status":"PENDING", "order_id":"110714", "trans_id":"27851-06615-85267", "amount":"657.63" }

Related content