Info |
---|
Этот функционал будет активирован после вашего запроса в групповом чате. Также обязательно сообщите IP адреса, с которых будут отправляться запросы для добавления в белый список. |
Note |
---|
Ваш сайт должен работать по схеме HTTPS и поддерживать протокол TLS 1.2. |
Table of Contents |
---|
Описание
Регулярный платеж позволяет проводить списание без участия плательщика.
В запросе используется ранее сохраненная карта в виде зашифрованого CARD_TOKEN, который можно получить из callback при первой Оплата картой или Верификации карты.
Дополнительно рекомендуем ознакомиться с разделом Особенности токенов
Требования
Уведомить клиентов об условиях подписки и регулярных списаниях
Получить согласие клиентов на регулярные списания
Получить согласие клиентов с условиями договора публичной оферты
Рекомендуем дать возможность отмены подписки клиентом на сайте или приложении
Согласно правил МПС разрешается 1 попытка списания в день
Разместить договор публичной оферты
Разместить логотипы платежных систем Visa и Mastercard
Добавить логотипы PSP Platon
API параметры запроса
HTTP METHOD:Info |
---|
Цей функціонал буде активовано після вашого запиту в груповому чаті. |
Зміст
Table of Contents | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Опис
Регулярний платіж дозволяє робити списання коштів без участі платника.
В запиті використовується раніше збережена картка у вигляді зашифрованого CARD_TOKEN, який можна отримати при першій транзакції по картці.
Вимоги
Include Page | ||||
---|---|---|---|---|
|
API параметри
HTTP METHOD: POST
API ENDPOINT: https://secure.platononline.com/post-unq/
Параметр |
---|
Значення |
---|
Опис |
---|
Особенности
Особливості |
---|
|
SALE
Код платежного метода
Только одно значение
|
|
async
|
Y
N
Включить асинхронный режим
В асинхронном режиме обязательное использование коллбеков.
По умолчанию значение N
Status | ||||
---|---|---|---|---|
|
channel_id
String
Дополнительный платежный канал
Код платіжного метода | |||
|
|
client_key
| String | API ключ мерчанта | Ключ |
надається на |
пошту мерчанту | |||||
|
order_id
| String | ID |
оплати в |
системі мерчанта | Max 32 |
символи | |||||
|
order_amount
| Number |
Сума оплати |
|
|
| |||||
|
order_currency
|
| Валюта |
|
order_description
| |||||
|
| String |
Опис | Max 255 |
символів | |||||
|
card_token
| String | Токен |
картки |
|
з callback першої оплати | |||||
|
payer_first_name
String
Имя плательщика
| String | Пошта платника |
| ||||||
|
|
payer_last_name
String
Фамилия плательщика
| Number | IP-адрес платника | В форматі "ХХХ.ХХХ.ХХХ.ХХХ"
| ||||||
| String | Посилання куди перейде платник після проби оплати (успішної чи невдалої) | |||||||
|
|
payer_address
String
Адрес плательщика
Max 256 символа
|
| Ознака регулярної оплати | |||
|
|
payer_country
String
Страна плательщика
2 символа
Укажите
NA
, если нет данныхВ формате "ХХ"2 символа
Укажите
NA
, если нет данных
| String | Контрольний підпис |
| |||||||||
|
payer_state
String
Штат плательщика
Укажите
NA
, если нет данных
|
| Включити асинхронний режим | В асинхронному режимі обов'язкове використання коллбеків. | ||
|
payer_city
String
Город плательщика
| String | Додатковий платіжний канал | Дозволяє відправити оплати на інший банківський термінал | ||
|
payer_zip
String
| String | Ім'я платника | Max 32 |
Укажите
NA
, если нет данныхсимволи без пробілів | |||||
|
payer_email
String
Почта плательщика
Info |
---|
Указать значение из первоначального запроса на оплату, когда был получен токен. Оставить пустое значение, если параметр был без значения. |
| String | Прізвище платника | Max 32 символи без пробілів | ||
|
payer_phone
Number
Номер телефона плательщика
В формате “380XXXXXXXXX”
Max 32 символа
| String | Адреса платника | Max 256 символів | ||
|
payer_ip
Number
IP-адрес плательщика
В формате "ХХХ.ХХХ.ХХХ.ХХХ"
| String | Країна платника | В форматі "ХХ" | ||
|
customer_wallet
|
term_url_3ds
String
| String |
Номер електронного кошелька пользователя
Поле обязательно для типов бизнеса связаных с виртуальными активами
Status | ||||
---|---|---|---|---|
|
Штат платника | В форматі "ХХ" | ||
|
|
auth
Y
N
Y
или N
(по умолчанию N
)
| String | Місто платника | Max 32 символи | ||
|
ext3
recurring
| String | Поштовий індекс платника | Max 32 символи | ||
|
|
hash
String
Контрольная подпись
Code Block | ||
---|---|---|
| ||
md5(
strtoupper(
strrev($payer_email).
$client_pass.
strrev($card_token)
)
) |
email
, то следует указать пустое значение для email
.
| Number | Номер телефону платника | В форматі “380XXXXXXXXX” | ||
|
|
Примеры запроса
Для просмотра примера раскройте список
| String | Номер електронного гаманця платника | Поле обов'язкове для типів бізнесу пов'язаних з віртуальними активами |
Приклад запиту
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Iframe | ||||||||
---|---|---|---|---|---|---|---|---|
|
Тестирование
В целях тестирования используйте CARD_TOKEN полученный из коллбека при успешной транзакции с использованием наших тестовых реквизитов:
Проверка платежей
Получить информацию о платежах можно несколькими способами:
Используя Callback для автоматизации процесса зачисления в системе на вашей стороне
Нотификация в Telegram Bot об успешной оплате с деталями платежа сразу после списания
В вашем личном кабинете Platon
CSV файл с деталями платежей скачав в личном кабинете Platon
Банковский реестр на почту или ваш FTP
Работа с Callback
Info |
---|
Рекомендуем ознакомиться с разделами: |
Callback и Response (Асинхронный режим)
Для просмотра примера раскройте список
title | Response о принятии запроса в обработку |
---|
Code Block | ||
---|---|---|
| ||
{
"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)
title | Callback при успешном списании |
---|
Code Block | ||
---|---|---|
| ||
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' => '********************************',
) |
Info |
---|
Для проверки достоверности полученного callback, рекомендуем сверять подпись hash по формуле md5(strtoupper(strrev(email).client_pass.trans_id.strrev(substr(card,0,6).substr(card,-4)))). Внимание! Если при первоначальном запросе на оплату, когда был получен токен не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email. |
Параметр
Описание
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
Зашифрованная подпись для проверки достоверности коллбека
title | Callback при неуспешном списании |
---|
Code Block | ||
---|---|---|
| ||
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' => '********************************',
) |
Info |
---|
Для проверки достоверности полученного callback, рекомендуем сверять подпись hash по формуле md5(strtoupper(strrev(email).client_pass.trans_id.strrev(substr(card,0,6).substr(card,-4)))). Внимание! Если при первоначальном запросе на оплату, когда был получен токен не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email. |
Параметр
Описание
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
Зашифрованная подпись для проверки достоверности коллбека
Просроченные токены
Note |
---|
Если в ответе на запрос вы получили одну из указанных ниже ошибок вам необходимо удалить токен как просроченный.
|
Warning |
---|
Данный CARD_TOKEN заблокированы и не подлежат восстановлению по причине блокировки / окончания действия банковской карты. |
Tip |
---|
Необходимо получить новый CARD_TOKEN проведя верификацию или оплату. |
Ошибки запросов
В ходе проведения запрос вы можете получить разные ошибки. Пожалуйста, ознакомьтесь со списком возможных ошибок, их причин и возможности решения.
Для просмотра примера раскройте список
Expand | ||
---|---|---|
| ||
Ошибка | Причины | Решение |
| Ваш IP адрес не добавлен в наш белый список. | Обратитесь в тех поддержку для добавления вашего IP в белый список. |
Данный функционал вам не подключен. | Обратитесь в тех поддержку для активации функционала. | |
Запрос отправлен не на нужную ссылку. | Рекомендуем сверить ссылку для отправки запроса с указаной в нужном разделе документации. |
';
$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); |
Info |
---|
Тестування
В цілях тестування використовуйте card_token
отриманий з коллбека успішної транзакції по одному з вказаних методів:
IE оплата карткою
Верифікація картки
C2A оплата
Виплата на картку по повному номеру картки
Перевірка платежів
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Callback
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Синхронний режим
Стандартний режим. Передавати async = N
не потрібно.
Асинхронний режим
Цей режим активується при передачі async = Y
. В цьому режимі обов'язково необхідно використовувати callback.
Include Page | ||||
---|---|---|---|---|
|
Протерміновані токени
Note | ||
---|---|---|
Якщо у відповіді на запит ви отримали одну з вказаних нижче помилок, вам необхідно видалити цей протермінований токен:
| Отправка запроса по CARD_TOKEN отключена для данного API ключа так как CARD_TOKEN был получен на другом ключе. | Обратитесь в тех поддержку для решения данной ситуации. |
| Неверно сформирована зашифрованная подпись. | Проверьте верность сформированной подписи. Если ошибку не нашли обратитесь в тех поддержку. |
Добавлены параметры, которые не входят в данный запрос. | Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку. | |
Запрос был отправлен не с того API ключа по которому был получен RC_TOKEN | Рекомендуем заменить API ключ на тот, по которому был получен RC_TOKEN | |
| Параметр | Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку. | Значение | Заменить значение |
| Токен больше не активен по причине завершения срока действия карты, блокировки карты, или блокировки токена. | Рекомендуем плательщику провести провести повторную оплату/верификацию для получения нового токена. Токен по которому была получена данная ошибка необходимо удалить из вашей базы данных, использовать его для списаний больше невозможно по причине блокировки. | За одну минуту в систему вами было отправлено несколько одинаковых запросов. | Рекомендуем проверить ваш механизм отправки запросов на наличие задвоения. |
| Запрос был отправлен менее чем через 10 минут после получения токена. | Рекомендуем настроить отправку запросов минимум через 10 минут после получения токена. Запрос по которому получена эта ошибка необходимо повторить. |
В параметр | Рекомендуем проверить верность внесенных данных в поле | |
| Запрос был отправлен менее чем через 10 минут после получения токена. | Рекомендуем настроить отправку запросов минимум через 10 минут после получения токена. Запрос по которому получена эта ошибка необходимо повторить. |
В параметр | Рекомендуем проверить верность внесенных данных в поле | |
| Ситуация требует внимания сотрудников Platon. | Рекомендуем обратиться в тех саппорт Platon для проверки причины. |
| Ситуация требует внимания сотрудников Platon. | Рекомендуем обратиться в тех саппорт Platon для проверки причины.
Warning |
---|
Ці |
Tip |
---|
Необхідно отримати новий |
Помилки запитів
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|