Merchant API
Словарь терминов
XEZINE — универсальное решение для проведения оплаты от точки приема средств до поставщика товаров и услуг.
Заказ — поручение в XEZINE для сбора заданного количества средств в пользу поставщика товаров и услуг
Точка приема — дополнение к адресу url для конкретной операции
ПТУ – Поставщик товаров и услуг
Общая информация
Данная документация описывает протокол взаимодействия универсальной системы XEZINE, с точками предоставления товаров и услуг. Предназначается техническим специалистам и разработчикам точек предоставления услуг и товаров.
Протокол
Вся информация между точкой предоставления услуг и товаров передается посредством протокола HTTPS и 2048 битного шифрования.
Принцип работы
Для получения оплаты в пользу провайдера услуг или магазинов, необходимо предварительно создать заказ на сумму к оплате в системе XEZINE.
Все оговоренные заранее данные формируются в JSON запрос и подлежат кодированию base64 по стандарту rfc2045. Перед отправкой данных необходимо указать заголовок с типом данных. В данном случае
Content-Type: text/plain-text. В ответ REST-Like сервис возвратит JSON строку с ответом о результате выполнения запроса. Для отправки данных используется метод POST, для получения — GET. Отправка данных осуществляется путем передачи сформированного пакета base64 в теле запроса.
Успешность выполнения запроса определяется полем error в ответе на запрос. Если error=0 то запрос выполнен без ошибок. Если error=1 то имеются ошибки и следует смотреть код ответа (code) и описнаие (message).
Авторизация
Для прохождения авторизации в XEZINE, необходимо отправлять ключ в заголовке предоставленный со стороны XEZINE в каждый запрос к API.
Пример заголовка для авторизации:
Authorization: Bearer XezineKey
Создание заказа
Для создания заказа на оплату, необходимо отправить нижеследующие поля форматом JSON.
Тип запроса | POST | |
Точка запроса | /order/add | URL+точка приема |
currency_code | varchar(3) | Код валюты заказа |
amount | float | Сумма к оплате |
vendor_ord_id | varchar(100) | Номер заказа |
vendor_ord_date | Yyyy-MM-dd HH:mm:ss | Дата заказа |
lifetime | int(11) | Время жизни заказа к оплате |
vendor_ord_descr | varchar(255) | Описание заказа |
Пример запроса на отправку до преобразования в base64:
{
"currency_code":"AZN",
"amount":1.25,
"vendor_ord_id":"205",
"vendor_ord_date":"2018-11-01 00:10:25",
"lifetime": 125,
"vendor_ord_descr":"Test order"
}
Пример ответа на на запрос создания заказа:
{
"error": 0,
"code": 0,
"message": "Ok",
"payment_code": 18
}
В процессе создания заказа могут возникнуть ошибки в отправляемых данных. Ниже приведен пример ответа, когда данные отправлены неверно:
{
"error": 1,
"code": 4,
"message": {
"vendor_ord_id": [
"Used vendor_ord_id is already exist.Please use another one."
]
}
}
Просмотр заказа
Для просмотра созданного заказа на оплату, необходимо выполнить GET запрос.
Тип запроса | GET |
|
Точка запроса | /order/{vendor_ord_id} | URL+точка приема |
Пример ответа на на запрос проверки заказа:
{
"vendor_ord_id": "206",
"amount": "1.25",
"currency_code": "AZN",
"vendor_ord_date": "2018-11-01 00:10:25",
"lifetime": "360",
"vendor_ord_descr": "Test order",
"status": 1,
"paid": "0",
"payment_id": 18,
"error": 0,
"code": 0
}
Если заказ не найден, API вернет соответствующий ответ:
{
"error": 1,
"code": 3
}
Отмена заказа
Для отмены заказа на оплату, необходимо отправить нижеследующие поля форматом JSON.
Тип запроса | POST |
|
Точка запроса | /order/cancel | URL+точка приема |
vendor_ord_id | varchar(100) | Номер заказа |
Пример запроса на отправку до преобразования в base64:
{
"vendor_ord_id":"205",
}
Пример ответа на запрос отмены заказа:
{
"error": 0,
"code": 0,
"message": "Ok",
}
Поля ответов
error | int | Код ошибки. 0 — запрос выполнен успешно. 1 — возникли трудности, смотреть code |
code | int | Код ответа, описывающий состояние выполненного запроса |
message | text | Описание выполнения запроса |
vendor_ord_id | varchar(100) | Номер заказа в системе ПТУ |
amount | float | Сумма к оплате |
currency_code | varchar(3) | Код валюты, устанавливается на основе соглашения с XEZINE |
vendor_ord_date | Yyyy-MM-dd HH:mm:ss | Дата создания заказа у ПТУ |
lifetime | int | Время жизни заказа в секундах. По истечении данного периода заказ будет закрыт и прием средств будет остановлен |
vendor_ord_descr | text | Описание заказа предоставленное ПТУ |
status | int | Статус заказа в XEZINE |
paid | float | Оплаченная сумма |
payment_code | int | Номер к оплате через XEZINE. Представлен для отображения пользователю |
Коды ответов
1 | Неверный ключ вендора |
2 | Неверный код заказа вендора |
3 | Заказ не найден |
4 | Получены неверные данные |
5 | Выполнен неверный запрос |