Robokassa GS символ — ключ к успешной передаче кода маркировки

 

При работе с маркированными товарами в системе «Честный ЗНАК» критически важен символ GS (Group Separator, ASCII 29, 0x1D). Он разделяет поля в коде DataMatrix, включая криптохвост, без которого платёжный шлюз Robokassa не может корректно обработать чек.

Однако на практике многие сканеры по умолчанию работают в режиме HID (как клавиатура) и не передают символ GS — вместо него вводится пробел, табуляция или символ вообще пропадает. Это приводит к ошибкам:

«Неверный формат кода маркировки»
«Криптохвост недействителен»
«Не удалось проверить подпись»


 Решение: Перевести сканер в COM-режим (виртуальный последовательный порт) и использовать LKS.exe

Почему это работает?

Когда сканер работает в HID-режиме, он эмулирует нажатия клавиш. Управляющие символы, такие как GS, не вводятся как есть — большинство операционных систем и браузеров их игнорируют или фильтруют.

Но при переводе сканера в COM-режим (через USB-COM или виртуальный COM-порт), данные передаются напрямую в бинарном виде, включая все управляющие символы, в том числе GS (0x1D).


 Как настроить: пошаговая инструкция

1. Переведите сканер в COM-режим

Большинство промышленных сканеров (Zebra, Honeywell, Datalogic, CipherLab) поддерживают режим виртуального COM-порта. Чтобы включить его:

  • Отсканируйте настройочный штрих-код из инструкции сканера (ищите «Enable Virtual COM Port» или «USB-COM Mode»).

  • Или используйте конфигурационное ПО (например, Zebra Setup Utilities).

  • После перезагрузки сканера он будет появляться в системе как COM-порт (например, COM4).

2. Запустите LKS.exe — драйвер-перехватчик данных

LKS.exe — это специализированное ПО (часто используется в российских кассовых системах), которое:

  • Подключается к COM-порту сканера.

  • Считывает сырые данные, включая символ GS.

  • Передаёт строку в нужном формате в активное поле ввода (например, в браузер, где открыта панель Robokassa).

  • Корректно вставляет GS как управляющий символ, не заменяя его.

Особый акцент: LKS.exe умеет сохранять структуру GS1 DataMatrix, включая \x1D, и вставлять её в поле ввода как есть — это критически важно для Robokassa.

3. Настройте передачу в Robokassa

Убедитесь, что:

  • Поле ввода кода маркировки в интерфейсе Robokassa принимает управляющие символы.

  • Данные передаются в JSON с экранированием \u001d:

"marking_code": "010460043993125621JgXJ5.T>lFqX\u001d91EE06\u001d92dGVzdA=="
  • Ваша система не фильтрует символы при логировании или валидации.


Почему LKS.exe — лучшее решение для браузера?

Проблема в HID-режиме Решение через LKS.exe + COM
GS пропадает или заменяется LKS передаёт GS как 0x1D
Криптохвост не читается Структура кода сохраняется полностью
Ошибки валидации в Robokassa Данные приходят в правильном формате
Невозможно тестировать в браузере LKS вставляет данные в любое поле

 Проверка: как убедиться, что всё работает?

  1. Просканируйте тестовый код маркировки.

  2. Откройте инструменты разработчика в браузере (F12).

  3. В поле ввода проверьте, пришёл ли символ GS — он может отображаться как или не отображаться вовсе, но в hex-дампе должен быть байт 1D.

  4. Отправьте чек — ошибка должна исчезнуть.

Заключение: Robokassa + GS символ = COM-режим + LKS.exe

Если вы сталкиваетесь с проблемой передачи символа GS в Robokassa, единственное надёжное решение — это:

 Перевести сканер в COM-режим
 Использовать LKS.exe как драйвер-перехватчик
 Обеспечить передачу сырых данных с символом GS (0x1D) напрямую в браузер

Такой подход гарантирует, что код маркировки будет корректно распознан, криптохвост проверен, а чек в Robokassa отправлен без ошибок.


#RobokassaGSсимвол #СимволGS #МаркировкаТоваров #ЧестныйЗНАК #LKSexe #COMрежим #СканерМаркировки #RobokassaОшибка #Криптохвост #DataMatrix #РешениеПроблемы

Метаданные статьи

Идентификатор статьи:
55
Категория:
Дата добавления:
2026-03-31 12:10:54
Просмотры:
414
Рейтинг (Голоса):
(4)

Связанные статьи