Антикражные ворота помогают автоматизировать проверку факта оплаты покупки покупателем. 

Алгоритм работы:

  1. Покупатель завершает покупку на КСО, печатается чек с уникальным штрих-кодом.
  2. Касса отправляет этот код на специальный сервер.
  3. Сервер сохраняет код в некоторое хранилище.
  4. Покупатель при проходе через ворота сканирует штрих-код с чека.
  5. Ворота по HTTP протоколу обращаются к серверу.
  6. Сервер проверяет код, отвечает разрешением или запретом, отмечает код как использованный.
  7. Ворота получают ответ, пропускают или не пропускают покупателя.


Настройка на кассе

На кассе достаточно включить модуль и указать адрес сервера.

Наименование

Возможные значения

Описание

Файл /opt/sst-sco/conf/exitgate.ini, секция [ExitGate], настройки плагина антикражных ворот
enable
  • true
  • false (по умолчанию)
Включение модуля
host​

ip-адрес
по умолчанию 127.0.0.1

Адрес сервера
portпорт
по умолчанию 8087
Порт сервера
timeoutцелое положительное число
по умолчанию 5000
Таймаут ожидания ответа от сервера (в миллисекундах)
mask

макроподстановка
по умолчанию ' '

Шаблон для формирования данных, отправляемых на сервер

Если значение не задано, то используется уникальный идентификатор, генерируемый на кассе.

Пример настройки на кассе с генерацией штрих-кода
[ExitGate]
enable = true
host = <ip-адрес сервера>

В интеграции Artix SCO в качестве штрих-кода для прохода через антикражные ворота можно использовать штрих-код чека продажи. В значение параметра mask нужно передать фискальные данные для генерации штрих-кода:

Пример настройки на кассе с формированием штрих-кода по маске "Дата, время и фискальный признак"
[ExitGate]
enable = true
host = <ip-адрес сервера>
mask = %(fiscalInfo.fnDate[yyyyMMddhhmm])%(fiscalInfo.fiscalSign[d])

В качестве макроподстановок допускается использование свойств объекта fiscalInfo для разных ОФД:

ОФДЗначение макроподстановкиТип значенияОписаниеПримерПример QR-кода ОФД

KZ:

  • Программный ФН (softwarefn)
  • Программный ФР (JNFD)
fiscalSignцелое положительное числоФискальный признак%(fiscalInfo.fiscalSign[d])https://consumer.oofd.kz/?i=1710742993&f=000000000099&s=1.00&t=20230815T155040
serialnumстрокаРегистрационный номер ККТ%(fiscalInfo.serialnum[s])
sumвещественное числоСумма чека%(fiscalInfo.sum[.2f])
fnDateдата и времяДата закрытия чека

%(fiscalInfo.fnDate[yyyyMMddhhmmss])

BY:

ПКС "Цифровые кассы" (cashboxservice)

fiscalSignцелое положительное числоУникальный идентификатор%(fiscalInfo.fiscalSign[d])Передается значение уникального идентификатора

UZ:

Программное обеспечение виртуальной кассы ARTIX (fiscaldriveapi)


fnNumberстрокаНомер фискального модуля%(fiscalInfo.fnNumber[s])https://ofd.soliq.uz/check?t=UZ191211502346&r=5221&c=20230815153405&s=520414301255
fdNumberцелое положительное числоПорядковый номер документа%(fiscalInfo.fdNumber[d])
fnDateдата и времяДата закрытия чека

%(fiscalInfo.fnDate[yyyyMMddhhmmss])

fiscalSignцелое положительное числоФискальный признак%(fiscalInfo.fiscalSign[d])

RU:

  • Пирит
  • Штрих
  • Атол
fnDateдата и времяДата закрытия чека%(fiscalInfo.fnDate[yyyyMMddhhmm])t=20230802T1819&s=3.00&fn=9999078902008644&i=758&fp=1013568547&n=1
sumвещественное числоСумма чека

%(fiscalInfo.sum[.2f])

fnNumberстрокаНомер фискального накопителя%(fiscalInfo.fnNumber[s])
fdNumberцелое положительное числоПорядковый номер документа%(fiscalInfo.fdNumber[d])
fiscalSignцелое положительное числоФискальный признак%(fiscalInfo.fiscalSign[d])

В настройках сервера антикражных ворот параметру mask необходимо задать регулярное выражение для проверки данных с QR-кода (столбец таблицы "Пример QR-кода ОФД") в соответствии с нужным ОФД.

Настройка сервера антикражных ворот

Для скачивания установочного пакета сервера антикражных ворот обратитесь в тех. поддержку.

Журнал запросов к серверу ведется в основном логе сервера /opt/exitgate/logs/server.log.

Настройки сервера антикражных ворот.

Наименование

Возможные значения

Описание

Файл /opt/exitgate/cfg/server.conf, секция [Server], настройки сервера
portпорт
по умолчанию 8087
Порт, который будет слушать сервер
acceptPeriodцелое положительное число
по умолчанию 0
Период времени (в секундах) от первого открытия, в течение которого разрешается повторный проход.
Если 0 или не задан, можно открыть только один раз
expiredAfterцелое положительное число
по умолчанию 0
Период времени (в секундах) с момента печати чека, после которого штрих-код считается просроченным.
Если 0 или не задан, то до удаления из БД
mask

регулярное выражение
по умолчанию ' '

Регулярное выражение для проверки данных со штрих-кода.
Пример регулярного выражения для QR российского ОФД (для интеграции Artix SCO):

^t=(\d{8})T(\d{4})&s=\d+\.\d{2}&fn=\d+&i=\d+&fp=(\d+)&n=\d+$

Цели для проверки выделяются с помощью скобок () – группировки. 

В проверке будет участвовать числовая последовательность "Дата, время и фискальный признак".

Если значение не задано, то штрих-код с кассы проверяется полностью.

Для применения настроек необходимо перезапустить сервис.

Настройки базы данных

Настройки базы данных задаются в конфигурационном файле /opt/exitgate/cfg/server.conf в секции [DataBase].

НаименованиеВозможные значенияОписание
Файл /opt/exitgate/cfg/server.conf, секция [DataBase], настройки базы данных
lifeTimeцелое число
по умолчанию 7
Количество дней, которое код хранится в БД

Список разрешенных штрих-кодов

Файл /opt/exitgate/cfg/allowedCodes.txt содержит список штрих-кодов, которые могут использоваться персоналом магазина для открытия антикражных ворот.

Каждый новый штрих-код должен записываться в файл с новой строки.

  • No labels