Протокол оплаты по NFC меткам для терминалов Vendista
Оплата по NFC метке происходит при поднесении к терминалу устройства, которое может хранить и передавать данные по технологии NFC. Для того, чтобы произошла оплата, терминал должен находится в режиме оплаты, а используемая метка должна быть предварительно добавлена в личном кабинете. Основная пользовательская инструкция по NFC меткам находится тут.
Передача данных о попытке оплаты происходит по протоколу HTTP на указанный в настройках шлюз (далее URL клиента). Данные содержаться в теле запроса с заголовком Content-Type: application/json.
Оплата
|
Метод |
POST |
|
URL |
URL клиента |
Тело запроса:
|
Cmd |
string |
константа со значением Sale |
|
CardNumber |
string |
считанное терминалом шестнадцатеричное значение NFC метки, например AABB1122 |
|
TID |
string |
номер терминала, к которому была приложена NFC метка. |
|
ProductId |
uint |
номер кнопки в торговом автомате. |
|
Amount |
string |
сумма к оплате. |
Пример:

В качестве ответа на данный запрос, необходимо передать данные о результатах проведения платежа в следующем формате:
| id | string |
Необязательное поле. Используется для передачи подтверждения выдачи товара. |
| result | bool |
Результат платежа. Обязательное поле. При значении true платеж будет считаться успешным и произойдет выдача товара. |
| error |
объект error |
объект ошибки. Необязательное поле. Передавать если результат платежа false. Содержит в себе поля code и message |
| error - code |
int |
код ошибки в вашей системе |
| error - message |
string |
текст ошибки |
Пример успешного платежа:

Пример неуспешного платежа:

Подтверждение выдачи
Запрос инициируется в случае, если при оплате был передан идентификатор платежа и терминал зафиксировал выдачу (пакет vendReport/vendReportMulty в логах терминала).
|
Метод |
POST |
|
URL |
{URL клиента}/{id}/vendreport |
В качестве ответа достаточно передать успешный Status code: 200 (OK).