Интеграция с 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 структуры данных, а не готовой структуры данных.