Интеграция с Lifehub
Интеграция с Lifehub (RaspberryPI, OrangePI) осуществляется посредством установки TCP Socket соединения по адресу {LIFEHUB_IP}:{PORT} и обмена сообщениями сериализованными в json-формат.
Обмен сообщениями с Lifehub осуществляется по модифицированному UTF-8 формату. Первые 2 байта сообщения в запросе и ответе содержат длину передаваемого сообщения.
LIFEHUB_IP - IP адрес Lifehub. Адрес можно определить по списку устройств, подключенных к роутеру в сети которого находится Lifehub, либо программным сканированием портов по заданной маске сети.
Используемые порты
| Порт | Взаимодействие | Тип обмена | Описание |
|---|---|---|---|
| 8565 | Lifehub | Клиент-сервер | Позволяет получать список устройств, подключенных к Lifehub. |
| 8567 | Принтеры | Клиент-сервер | Позволяет фискализировать данные на фискальном регистраторе, получать в ответ фискальные данные; отправлять нефискальные команды печати и др. |
| 8568 | Сканеры ШК | Клиент-сервер (Long pool) | Позволяет получать штрих коды от сканера, подключенному к Lifehub. |
| 8569 | POS-терминалы | Клиент-сервер | Позволяет взаимодействовать с банковскими POS-терминалами: производить оплату, возврат (отмену), проводить сверку итогов. |
Кодировка данных
Данные в запросе и ответе должны быть закодированы в UTF-8
Структура данных при запросе
Каждый запрос, отправляемый на Lifehub должен быть представлен в виде строки, сериализованной в json следующей структуры:
{
cmd: String,
data: String,
number: Integer
}
Описание данных при запросе
cmd- команда на Lifehub.data- данные для отправки на Lifehub.number- номер запроса. Ответом на запрос Lifehub ответит тем жеnumber.
Структура данных при ответе
Каждый ответ, возвращаемый с Lifehub представлен в виде строки, сериализованной в json следующей структуры:
{
cmd: String,
number: Integer,
code: Integer,
msg: String,
debug: String,
data: String
}
Описание данных при ответе
cmd- команда отправленная в запросе.number- номер запроса, отправленный на Lifehub.code- код ответа. Принимает значение0, если в ходе валидации данных и обработке запроса ошибок не было.1- в ходе выполнения было выброшено исключение.2- принтер не подключен.msg- текст ответа. Принимает значение"", если ошибок не было, в ином случае содержит текст ошибки.debug- отладочная информация.data- данные в ответе на запрос.
Замечание
Поле data в запросе и ответе представлено в виде сериализованной в строку json структуры данных, а не готовой структуры данных.