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 30
Next »
Описание:
Регулярный платеж позволяет проводить списание без участия плательщика.
В запросе используется ранее сохраненная карта в виде зашифрованого CARD_TOKEN, который можно получить из callback при первой Оплата картой или Верификации карты.
Дополнительно рекомендуем ознакомиться с разделом Особенности токенов
Необходимые требования:
На сайте мерчанта обязательно должно быть размещено уведомление для плательщика о том, что он согласен на последующие списания без участия владельца карты.
API Endpoint (cсылка для отправки запросов):
https://secure.platononline.com/pos-unq/
Описание параметров запроса:
Параметр | Значение | Описание | Особенности | Обязательно |
---|
action | SALE | Код платежного метода | Только одно значение | Да |
async | "Y" или "N" | Включить асинхронный режим | В асинхронном режиме обязательное использование коллбеков. По умолчанию значение "N" | Нет |
channel_id | String | Дополнительный платежный канал | Позволяет отправить платежи на другой банковский терминал | Нет |
client_key | String | API ключ мерчанта | Ключ предоставляется на почту мерчанту | Да |
order_id | String | ID платежа в системе мерчанта | Max 32 символа | Да |
order_amount | Number | Сумма платежа | | Да |
order_currency | UAH | Валюта платежа | | Да |
order_description | String | Описание платежа | Max 255 символов | Да |
card_token | String | Токен карты | card_token из коллбека первичной транзакции | Да |
payer_first_name | String | Имя плательщика | Max 32 символа без пробелов | Да |
payer_last_name | String | Фамилия плательщика | Max 32 символа без пробелов | Да |
payer_address | String | Адрес плательщика | Max 256 символа | Да |
payer_country | String | Страна плательщика | В формате "ХХ" 2 символа Укажите "NA", если нет данных | Да |
payer_state | String | Штат плательщика | В формате "ХХ" 2 символа Укажите "NA", если нет данных | Да |
payer_city | String | Город плательщика | Max 32 символа Укажите "NA", если нет данных | Да |
payer_zip | String | Почтовый индекс плательщика | Max 32 символа Укажите "NA", если нет данных | Да |
payer_email | String | Почта плательщика | | Да |
payer_phone | Number | Номер телефона плательщика | В формате “380XXXXXXXXX” Max 32 символа | Да |
payer_ip | Number | IP-адрес плательщика | В формате "ХХХ.ХХХ.ХХХ.ХХХ" | Да |
term_url_3ds | String | Ссылка по которой будет отправлен клиент после успешной оплаты | Max 255 символов | Да |
auth | "Y" или "N" | Холдирование средств на карте плательщика | "Y" или "N" (по умолчанию "N") | Нет |
hash | String | Контрольная подпись |
md5(
strtoupper(
strrev(email).
client_pass.
strrev(card_token)
)
)
| Да |
Примеры запроса:
Для просмотра примера раскройте список
Пример запроса на PHP
<?php
$client_pass='***';
$data['action']='SALE';
$data['client_key']='***';
$data['order_id']='458-3453';
$data['order_amount']='1000.00';
$data['order_currency']='UAH';
$data['order_description']='test';
$card_token = '*****';
$data['payer_first_name']='Ivan';
$data['payer_last_name']='Ivanov';
$data['payer_phone']='+380111111111';
$data['payer_email']='sale@gmail.com';
$data['payer_ip']='213.186.115.164';
$data['term_url_3ds']='http://google.com';
$hash = md5(
strtoupper(
strrev(email).
client_pass.
strrev(card_token)
)
);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>sale</title>
</head>
<body onload="javascript:document.forms[0].submit()">
<form action="https://secure.platononline.com/post-unq/" method="post">
<input type="hidden" name="action" value="<?=$data['action']?>" />
<input type="hidden" name="client_key" value="<?=$data['client_key']?>" />
<input type="hidden" name="order_id" value="<?=$data['order_id']?>" />
<input type="hidden" name="order_amount" value="<?=$data['order_amount']?>" />
<input type="hidden" name="order_currency" value="<?=$data['order_currency']?>" />
<input type="hidden" name="order_description" value="<?=$data['order_description']?>" />
<input type="hidden" name="card_token" value="<?=$card_token ?>" />
<input type="hidden" name="payer_first_name" value="<?=$data['payer_first_name']?>" />
<input type="hidden" name="payer_last_name" value="<?=$data['payer_last_name']?>" />
<input type="hidden" name="payer_phone" value="<?=$data['payer_phone']?>" />
<input type="hidden" name="payer_email" value="<?=$data['payer_email']?>" />
<input type="hidden" name="payer_ip" value="<?=$data['payer_ip']?>" />
<input type="hidden" name="term_url_3ds" value="<?=$data['term_url_3ds']?>" />
<input type="hidden" name="hash" value="<?=$hash?>" />
</form>
</body>
</html>
Тестирование:
В целях тестирования используйте CARD_TOKEN полученный из коллбека при успешной транзакции с использованием наших тестовых реквизитов:
Получение статуса транзакции в Callback и Response:
Для получения коллбеков отправьте ссылку на ваш обработчик представителям Platon.
После отравки коллбека в ответ Platon должен получить код HTTP 200 OK. Если коллбек не удалось доставить будет произведено до 5 попыток повторной отправки в течение 60 секунд.
Синхронный режим:
Для просмотра примера раскройте список
Промежуточный Response при наличии проверки 3DS
{
"action":"SALE",
"result":"REDIRECT",
"status":"3DS",
"order_id":"6b51033e-3e58-42e0-8ec3-88c97388018b",
"trans_id":"28738-47774-55067",
"trans_date":"2020-04-20 12:12:57",
"redirect_url":"https:\/\/acs.privatbank.ua\/pPaReqMC.jsp",
"redirect_params":{
"PaReq":"eJxVUllu2zAQvYqg\/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K\/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx\/VlRvw8ID7YRhFYcgDHrmeF\/KQc8apG\/jcFjCP0U\/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx\/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy\/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK\/U3fDV\/0nf4x3OL7b7jRf\/Uv\/dvS\/\/Uf\/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz\/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=",
"TermUrl":"https:\/\/secure.platononline.com\/3ds\/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=*****************************************************************************"
}
}
Параметры | Описание |
---|
action | SALE |
result | REDIRECT |
status | 3DS |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
redirect_url | URL, на который должен быть перенаправлен плательщик |
redirect_params | Строка параметров |
Промежуточный Callback при наличии проверки 3DS
array (
'action' => 'SALE',
'result' => 'REDIRECT',
'status' => '3DS',
'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b',
'trans_id' => '28738-47774-55067',
'trans_date' => '2020-04-20 12:12:57',
'redirect_url' => 'https://acs.privatbank.ua/pPaReqMC.jsp',
'redirect_params' =>
array (
'PaReq' => 'eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=',
'TermUrl' => 'https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=***************************************************
),
'redirect_method' => 'POST',
'hash' => '********************************',
)
Параметры | Описание |
---|
action | SALE |
result | REDIRECT |
status | 3DS |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
redirect_url | URL, на который должен быть перенаправлен плательщик |
redirect_params | Строка параметров |
redirect_method | Метод передачи параметров (POST/GET) |
hash | Зашифрованная подпись для проверки достоверности коллбека |
Response при успешном списании
{
"action":"SALE",
"result":"SUCCESS",
"status":"SETTLED",
"order_id":"4385302",
"trans_id":"28261-34099-19648",
"descriptor":null,
"trans_date":"2020-02-25 06:50:09"
"recurring_token":"01e00c2b39bb3b933723307c442efd02",
"card_token":"8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2"
}
Параметр | Описание |
---|
action | SALE |
result | SUCCESS |
status | SETTLED (PENDING, если в запросе было указано ‘auth’='Y') |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
descriptor | NULL |
recurring_token | Зашифрованный токен карты для последующих транзакций по rc_token |
card_token | Зашифрованный токен карты для последующих транзакций по card_token |
Callback при успешном списании
array (
'action' => 'SALE',
'result' => 'SUCCESS',
'status' => 'SETTLED',
'order_id' => '4385323',
'trans_id' => '28261-47789-28578',
'trans_date' => '2020-02-25 07:12:58',
'descriptor' => NULL,
'recurring_token' => '01e00c2b39bb3b933723307c442efd02',
'card_token' => '8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2',
'hash' => '********************************',
)
Параметр | Описание |
---|
action | SALE |
result | SUCCESS |
status | SETTLED (PENDING, если в запросе было указано ‘auth’='Y') |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
descriptor | NULL |
recurring_token | Зашифрованный токен карты для последующих транзакций по rc_token |
card_token | Зашифрованный токен карты для последующих транзакций по card_token |
hash | Зашифрованная подпись для проверки достоверности коллбека |
Response при неуспешном списании
{
"action":"SALE",
"result":"DECLINED",
"status":"DECLINED",
"order_id":"4092002",
"trans_id":"28076-29879-99538",
"trans_date":"2020-02-03 20:49:47",
"decline_reason":"Declined by processing"
}
Параметр | Описание |
---|
action | SALE |
result | DECLINED |
status | DECLINED |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
descriptor | NULL |
decline_reason | Причина отмены транзакции |
Callback при неуспешном списании
array (
'action' => 'SALE',
'result' => 'DECLINED',
'status' => 'DECLINED',
'order_id' => '4092002',
'trans_id' => '28076-29879-99538',
'trans_date' => '2020-02-03 20:49:47',
'decline_reason' => 'Declined by processing',
'hash' => '********************************',
)
Параметр | Описание |
---|
action | SALE |
result | DECLINED |
status | DECLINED |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
descriptor | NULL |
decline_reason | Причина отмены транзакции |
hash | Зашифрованная подпись для проверки достоверности коллбека |
Асинхронный режим:
Данный режим активируется при передаче ‘async’='Y'. В этом режиме обязательно необходимо принимать callback на ваш callback url.
Для просмотра примера раскройте список
Response о принятии запроса в обработку
{
"action":"SALE",
"result":"ACCEPTED",
"order_id":"4385302",
"trans_id":"28261-34099-19648",
"trans_date":"2020-02-25 06:50:09"
}
Параметр | Описание |
---|
action | SALE |
result | ACCEPTED |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
Промежуточный Callback при наличии проверки 3DS
array (
'action' => 'SALE',
'result' => 'REDIRECT',
'status' => '3DS',
'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b',
'trans_id' => '28738-47774-55067',
'trans_date' => '2020-04-20 12:12:57',
'redirect_url' => 'https://acs.privatbank.ua/pPaReqMC.jsp',
'redirect_params' =>
array (
'PaReq' => 'eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=',
'TermUrl' => 'https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=***************************************************
),
'redirect_method' => 'POST',
'hash' => '********************************',
)
Параметры | Описание |
---|
action | SALE |
result | REDIRECT |
status | 3DS |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
redirect_url | URL, на который должен быть перенаправлен плательщик |
redirect_params | Строка параметров |
redirect_method | Метод передачи параметров (POST/GET) |
hash | Зашифрованная подпись для проверки достоверности коллбека |
Callback при успешном списании
array (
'action' => 'SALE',
'result' => 'SUCCESS',
'status' => 'SETTLED',
'order_id' => '4385323',
'trans_id' => '28261-47789-28578',
'trans_date' => '2020-02-25 07:12:58',
'descriptor' => NULL,
'recurring_token' => '01e00c2b39bb3b933723307c442efd02',
'card_token' => '8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2',
'hash' => '********************************',
)
Параметр | Описание |
---|
action | SALE |
result | SUCCESS |
status | SETTLED (PENDING, если в запросе было указано ‘auth’='Y') |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
descriptor | NULL |
recurring_token | Зашифрованный токен карты для последующих транзакций по rc_token |
card_token | Зашифрованный токен карты для последующих транзакций по card_token |
hash | Зашифрованная подпись для проверки достоверности коллбека |
Callback при неуспешном списании
array (
'action' => 'SALE',
'result' => 'DECLINED',
'status' => 'DECLINED',
'order_id' => '4092002',
'trans_id' => '28076-29879-99538',
'trans_date' => '2020-02-03 20:49:47',
'decline_reason' => 'Declined by processing',
'hash' => '********************************',
)
Параметр | Описание |
---|
action | SALE |
result | DECLINED |
status | DECLINED |
order_id | Уникальный ордер ID транзакции в системе мерчанта |
trans_id | Уникальный ордер ID транзакции в системе Platon |
trans_date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) |
descriptor | NULL |
decline_reason | Причина отмены транзакции |
hash | Зашифрованная подпись для проверки достоверности коллбека |