...
В запросе используется ранее сохраненная карта в виде зашифрованого CARD_TOKEN, который можно получить из callback при первой Оплата картой.
Дополнительно рекомендуем ознакомиться с разделом Особенности токенов /wiki/spaces/docs/pages/1323303006
...
Обязательные требования к сайту:
...
API Endpoint (cсылка для отправки запросов):
...
Описание параметров запроса:
Параметр | Значение | Описание | Особенности | Обязательно |
---|
key | String | API ключ мерчанта | Ключ предоставляется на почту мерчанту | Да |
payment | CCT | Код платежного метода | | Да |
data | amount | Number | Сумма платежа | Tip |
---|
Верный вариант 1000.00 |
Warning |
---|
Неверные варианты 1000 1000.0 1,000.0 1,000.00 |
| Да |
currency |
UAHMDL | Валюта платежа | Info |
---|
Оплата возможна только в национальной валюте гривне |
| Да |
description | String | Описание платежа | Note |
---|
Для кириллических символов необходимо использовать формат UTF-8 |
Info |
---|
Обязательно указать перечень товаров из корзины с количеством для каждого из них. Пример: "Volume Lips x3; Anti Age x2". |
Max 5000 символов | Да |
card_token | String | Токен карты | card_token из коллбека первичной транзакции | Да |
url | String | Ссылка по которой будет отправлен клиент после успешной оплаты | Max 255 символов | Да |
sign | String | Контрольная подпись | Code Block |
---|
| md5(
strtoupper(
strrev(key).
strrev(payment).
strrev(data).
strrev(url).
strrev(card_token).
strrev(PASSWORD)
)
) |
| Да |
lang | UK, RU, EN | Язык отображения формы | В приоритете настройка языка браузера плательщика | Нет |
email | String | Почта плательщика | Max 255 символа |
НетДа |
first_name | String | Имя плательщика | Max 32 символа |
НетДа |
last_name | String | Фамилия плательщика | Max 32 символа | Нет |
phone | Number | Номер телефона плательщика | Note |
---|
Если ваше юр. лицо открыто в Приватбанк и вы передаете в запросе телефон плательщика, то: 1) обязательный формат телефона 380… 2) номер телефона должен соответствовать финансовому номеру привязанному к карте |
| Нет |
address | String | Адресс плательщика | Max 32 символа | Нет |
zip | String | Почтовый код плательщика | Max 32 символа | Нет |
city | String | Город плательщика | Max 32 символа | Нет |
country | String | Двухзначный код страны плательщика | Стандарт ISO 3166-1 alpha-2 | Нет |
state | String | Код штата, провинции или области плательщика | Note |
---|
Обязательный параметр для стран US, CA, AU |
Стандарт ISO 3166-2 | Нет |
order | String | ID платежа в системе мерчанта | Max 32 символа |
НетДа |
customer_wallet | String | Номер електронного кошелька пользователя | Поле обязательно для типов бизнеса связаных с виртуальными активами | Нет |
error_url | String | Ссылка по которой будет отправлен плательщик после 5 неудачных попыток оплаты | При отсутствии ссылки ошибка будет отображена на платежной форме | Нет |
formid | String | Параметр дополнительной настройки |
| Нет |
ext1-ext10 | String | Дополнительные поля | Max 1024 символа в каждом ext поле | Нет |
...
Примеры запроса:
Для просмотра примера раскройте список
Expand |
---|
title | Пример запроса на PHP |
---|
|
Code Block |
---|
| <?php
$pass = '***';
$data['key'] = '***';
$data['url'] = 'https://google.com';
$data['data'] = base64_encode(
json_encode(
array(
'amount' => '100.00',
'description' => 'Product',
'currency' => 'UAHMDL'
)
)
);
$data['payment'] = 'CCT';
$card_token = '***';
$sign = md5(
strtoupper(
strrev($data['key']).
strrev($data['payment']).
strrev($data['data']).
strrev($data['url']).
strrev($card_token).
strrev($pass)
)
);
?>
<!DOCTYPE html PUBLIC>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CCT</title>
</head>
<body onload="javascript:document.forms[0].submit()">
<form action="https://secure.akurateco.com/payment/auth" method="post">
<input type="hidden" name="payment" value="<?=$data['payment']?>" />
<input type="hidden" name="key" value="<?=$data['key']?>" />
<input type="hidden" name="url" value="<?=$data['url']?>" />
<input type="hidden" name="card_token" value="<?=$card_token?>" />
<input type="hidden" name="data" value="<?=$data['data']?>" />
<input type="hidden" name="sign" value="<?=$sign?>" />
</form>
</body>
</html> |
|
...
В целях тестирования используйте CARD_TOKEN полученный из коллбека при успешной транзакции с использованием наших тестовых реквизитов:
...
Коллбек при успешной оплате:
...
Expand |
---|
title | Пример POST параметров в Callback при успешной оплате |
---|
|
Code Block |
---|
| array (
'id' => '27374-54220-93708',
'order' => '11-22-33',
'status' => 'SALE',
'rrn' => NULL,
'approval_code' => NULL,
'card' => '411111****1111',
'description' => 'Оплата триал версии',
'amount' => '1.00',
'currency' => 'UAHMDL',
'name' => 'Марина Иванова',
'email' => 'platon@gmail.com',
'country' => NULL,
'state' => NULL,
'city' => NULL,
'address' => NULL,
'date'=> '2019-11-14 15:30:22',
'ip' => '155.209.55.69',
'sign' => '********************************',
'rc_id' => '27474-11220-68708',
) |
Info |
---|
Для проверки достоверности полученного callback, рекомендуем сверять подпись sign по формуле md5(strtoupper(strrev(email).pass.order.strrev(substr(card,0,6).substr(card,-4)))). Внимание! Если при запросе на оплату не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email. |
Параметр | Описание |
---|
id | Уникальный ордер ID транзакции в Platon | order | Ордер ID транзакции в системе мерчанта. Если параметр не передавался система Platon присвоит его самостоятельно | status | SALE | rrn | Значение RRN транзакции | approval_code | Значение approval_code транзакции | card | Маска карты в формате ХХХХХХ****ХХХХ | description | Описание | amount | Сумма списания | currency | Валюта транзакции | name | Сума передаваемых параметров first_name и last_name | email | E-mail плательщика | country | Код страны плательщика (2-а знака) | state | Код штата плательщика (2-х или 3-х значный код) | city | Город плательщика | address | Адрес плательщика | date | Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS) | ip | IP адрес плательщика | ext1-ext10 | Дополнительные поля от 1 до 10 | rc_id | Ордер IP в системе Platon для последующих транзакций по rc_token | rc_token | Зашифрованный токен карты для последующих транзакций по rc_token | card_token | Зашифрованный токен карты для последующих транзакций по card_token | card_hash | Уникальное зашифрованное значение номера карты, которое будет возвращаться в коллбеке при оплате, верификации, погашении и выплате средств на карту. Этот параметр даст вам возможность в вашей системе: Привязать карту под клиента. Проверить не использовал ли другой клиент эту же карту. Проверить какие кредиты, товары и услуги погашаются данной картой. Отслеживать мошенничество, когда клиент использует ту же карту с другого аккаунта, например, чтобы повторно воспользоваться акцией.
Info |
---|
Если вы хотите использовать данный функционал, пожалуйста, сообщите нам для его включения. |
| sign | Зашифрованная подпись для проверки достоверности коллбека |
|
Expand |
---|
title | Пример GET параметров |
---|
|
Tip |
---|
Плательщик будет отправлен по ссылке указанной в “url” с добавлением “order” методом GET |
Code Block |
---|
| array (
'token' => '11-22-33',
) |
|
...
Для получения информации об оплате в случае, если ваша система не смогла принять Callback или по другой причине, можно воспользоваться дополнительными API запросами проверки:
...
Ошибки запросов:
В ходе проведения запрос вы можете получить разные ошибки. Пожалуйста, ознакомьтесь со списком возможных ошибок, их причин и возможности решения.
...
Expand |
---|
title | Список ошибок и их решение |
---|
|
Ошибка | Причины | Решение |
---|
Response: {"result":"ERROR","error_message":"Incorrect sign"} | Неверно сформирована зашифрованная подпись. | Проверьте верность сформированной подписи. Если ошибку не нашли обратитесь в тех поддержку. | Добавлены параметры, которые не входят в данный запрос. | Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку. | Неверно зашифрована data. | Проверить используете ли вы UTF-8 и верный формат параметров. | Response: {"result":"ERROR","error_message":"Empty action"} | Параметр action заполнен не верно, пуст, или не на первом месте в списке параметров запроса. | Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку. | Response: {"result":"ERROR","error_message":"Order already exists"} | Значение order_id должно быть уникальным. Данная ошибка говорит о том, что у вас уже была успешная транзакция с таким order_id. | Заменить значение order_id на новое уникальное. | Response: {"result":"ERROR","error_message":"Service error"} | Ситуация требует внимания сотрудников Platon. | Рекомендуем обратиться в тех саппорт Platon для проверки причины. | Response: {"result":"ERROR","error_message":"Previous transaction not completed"} | Ситуация требует внимания сотрудников Platon. | Рекомендуем обратиться в тех саппорт Platon для проверки причины. |
|