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