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 3
Next »
Описание:
Данный функционал позволяет вам разместить платежную форму на вашей стороне, с вашим уникальным дизайном, и без перехода плательщика на нашу форму ввода карточных данных.
Верификация карты используется кредитными организациями для:
Обязательные требования к сайту:
API Endpoint (cсылка для отправки запросов):
Запрос необходимо отправлять с сервера.
https://secure.platononline.com/post-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 символов | Да |
payer_first_name | String | Имя плательщика | Max 32 символа без пробелов | Да |
payer_last_name | String | Фамилия плательщика | Max 32 символа без пробелов | Да |
payer_address | String | Адрес плательщика | Max 256 символа Укажите "NA", если нет данных | Да |
payer_country | String | Страна плательщика | Стандарт ISO 3166-1 alpha-2 В формате "ХХ" 2 символа Укажите "NA", если нет данных | Да |
payer_state | String | Штат плательщика | Стандарт ISO 3166-2 В формате "ХХ" 2 символа Укажите "NA", если нет данных | Да |
payer_city | String | Город плательщика | Max 32 символа Укажите "NA", если нет данных | Да |
payer_zip | String | Почтовый индекс плательщика | Max 32 символа Укажите "NA", если нет данных | Да |
payer_email | String | Почта плательщика | Max 255 символа | Да |
payer_phone | Number | Номер телефона плательщика | | Да |
payer_ip | Number | IP-адрес плательщика | В формате "ХХХ.ХХХ.ХХХ.ХХХ" | Да |
customer_wallet | String | Номер електронного кошелька пользователя | Поле обязательно для типов бизнеса связаных с виртуальными активами | Нет |
term_url_3ds | String | Ссылка по которой будет отправлен клиент после успешной оплаты при прохождении 3DS | Max 255 символов | Да |
card_number | Number | Полный номер карты | В формате "ХХХХХХХХХХХХХХХХ" 16 символов | Да |
card_exp_month | Number | Месяц окончания срока действия карты | В формате "ХХ" 2 символа | Да |
card_exp_year | Number | Год окончания срока действия карты | В формате "ХХХХ" 4 символа | Да |
card_cvv2 | Number | Проверочный код на карте | В формате "ХХХ" 3 символа | Да |
req_token | "Y" или "N" | Для получения card_token | По умолчанию "N" | Да |
recurring_init | "Y" или "N" | Для получения rc_id и rc_token | По умолчанию "N" | Да |
auth | "Y" или "N" | Холдирование средств на карте плательщика | По умолчанию "N" | Нет |
hash | String | Контрольная подпись |
md5(
strtoupper(
strrev(email).
client_pass.
strrev(
substr(card_number,0,6).
substr(card_number,-4)
)
)
)
| Да |
Примеры запроса:
Для просмотра примера раскройте список
Пример запроса на PHP
<?php
$client_pass = '***';
$data['action'] = 'SALE';
$data['client_key'] = '***';
$data['order_id'] = '546-4588';
$data['order_amount'] = '1000.00';
$data['order_currency'] = 'UAH';
$data['order_description'] = 'test';
$card_number = '4111111111111111';
$data['card_cvv2'] = '159';
$data['card_exp_month'] = '01';
$data['card_exp_year'] = '2022';
$data['payer_first_name'] = 'Ivan';
$data['payer_last_name'] = 'Ivanov';
$data['payer_phone'] = '380111111111';
$data['payer_address'] = 'NA';
$data['payer_country'] = 'UA';
$data['payer_state'] = 'NA';
$data['payer_city'] = 'Kiev';
$data['payer_zip'] = '01001';
$data['payer_email'] = 'sale@gmail.com';
$data['payer_ip'] = '213.186.115.164';
$data['req_token'] = 'N';
$data['recurring_init'] = 'N';
$data['term_url_3ds'] = 'https://google.com';
$hash = md5(
strtoupper(
strrev(
$data['payer_email']).
($client_pass).
strrev(
substr($card_number,0,6).
substr($card_number,-4)
)
)
);
?>
<!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_number" value="<?=$card_number ?>" />
<input type="hidden" name="card_cvv2" value="<?=$data['card_cvv2']?>" />
<input type="hidden" name="card_exp_month" value="<?=$data['card_exp_month']?>" />
<input type="hidden" name="card_exp_year" value="<?=$data['card_exp_year']?>" />
<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_address" value="<?=$data['payer_address']?>" />
<input type="hidden" name="payer_country" value="<?=$data['payer_country']?>" />
<input type="hidden" name="payer_state" value="<?=$data['payer_state']?>" />
<input type="hidden" name="payer_city" value="<?=$data['payer_city']?>" />
<input type="hidden" name="payer_zip" value="<?=$data['payer_zip']?>" />
<input type="hidden" name="payer_email" value="<?=$data['payer_email']?>" />
<input type="hidden" name="payer_ip" value="<?=$data['payer_ip']?>" />
<input type="hidden" name="req_token" value="<?=$data['req_token']?>" />
<input type="hidden" name="recurring_init" value="<?=$data['recurring_init']?>" />
<input type="hidden" name="term_url_3ds" value="<?=$data['term_url_3ds']?>" />
<input type="hidden" name="hash" value="<?=$hash?>" />
</form>
</body>
</html>
Тестирование:
В целях тестирования используйте наши тестовые реквизиты.
Номер карты | Месяц / Год | CVV2 | Описание результата |
---|
4111 1111 1111 1111 | 01 / 2022 | Любые три цифры | Успешная оплата без 3DS проверки |
4111 1111 1111 1111 | 02 / 2022 | Любые три цифры | Не успешная оплата без 3DS проверки |
4111 1111 1111 1111 | 05 / 2022 | Любые три цифры | Успешная оплата с 3DS проверкой |
4111 1111 1111 1111 | 06 / 2022 | Любые три цифры | Не успешная оплата с 3DS проверкой |
Дебагинг недоставленных Callback:
С целью дебагинга работы вашего сервера на ошибки получения Callback можем предоставить вам телеграм бот, куда будут поступать тело недоставленных вам Callback и информация об HTTP статусе.
Для настройки телеграм бота обратитесь в ваш груповой чат с просьбой подключить его вам.
Получение статуса транзакции в Callback и Response:
После отправки коллбека в ответ 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 |
card_hash | Уникальное зашифрованное значение номера карты, которое будет возвращаться в коллбеке при оплате, верификации, погашении и выплате средств на карту. Этот параметр даст вам возможность в вашей системе: Привязать карту под клиента. Проверить не использовал ли другой клиент эту же карту. Проверить какие кредиты, товары и услуги погашаются данной картой. Отслеживать мошенничество, когда клиент использует ту же карту с другого аккаунта, например, чтобы повторно воспользоваться акцией.
|
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 |
card_hash | Уникальное зашифрованное значение номера карты, которое будет возвращаться в коллбеке при оплате, верификации, погашении и выплате средств на карту. Этот параметр даст вам возможность в вашей системе: Привязать карту под клиента. Проверить не использовал ли другой клиент эту же карту. Проверить какие кредиты, товары и услуги погашаются данной картой. Отслеживать мошенничество, когда клиент использует ту же карту с другого аккаунта, например, чтобы повторно воспользоваться акцией.
|
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 | Зашифрованная подпись для проверки достоверности коллбека |
Дополнительная проверка оплаты:
Для получения информации об оплате в случае, если ваша система не смогла принять Callback, Response или по другой причине, можно воспользоваться дополнительными API запросами проверки: