Skip to main content

Интеграция с Lifehub

Интеграция с Lifehub (RaspberryPI, OrangePI) осуществляется посредством установки TCP Socket соединения по адресу {LIFEHUB_IP}:{PORT} и обмена сообщениями сериализованными в json-формат.

Обмен сообщениями с Lifehub осуществляется по модифицированному UTF-8 формату. Первые 2 байта сообщения в запросе и ответе содержат длину передаваемого сообщения.

LIFEHUB_IP - IP адрес Lifehub. Адрес можно определить по списку устройств, подключенных к роутеру в сети которого находится Lifehub, либо программным сканированием портов по заданной маске сети.

Используемые порты

ПортВзаимодействиеТип обменаОписание
8565LifehubКлиент-серверПозволяет получать список устройств, подключенных к Lifehub.
8567ПринтерыКлиент-серверПозволяет фискализировать данные на фискальном регистраторе, получать в ответ фискальные данные; отправлять нефискальные команды печати и др.
8568Сканеры ШККлиент-сервер (Long pool)Позволяет получать штрих коды от сканера, подключенному к Lifehub.
8569POS-терминалыКлиент-серверПозволяет взаимодействовать с банковскими 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 структуры данных, а не готовой структуры данных.