Trusted Guest
Технология защиты от злоупотреблений при работе с лояльностью через iikoWaiter позволяет надежно идентифицировать гостя и избегать подделку QR-кодов путем их копирования.
В основе идеи лежит использование при идентификации гостя динамического кода (любого формата), с открытой и зашифрованной частями. В открытой части содержится номер карты гостя. В закрытой части содержится зашифрованная информация для проверки срока действия кода и сам идентификатор гостя.
Принцип работы:
Отсканировать зашифрованный код в приложении.
Trusted Guest расшифровывает Data. Проверяет срок действия кода.
В случае успешной проверки срока дейстия использует идентификатор гостя из Data для чекина.
Формат Data:
JSON
{
"qrExpires": int (UTC time),
"cardNumber": string (guest card number or phone)
}
Требования к формату кода: {Зашифрованный JSON}:{Идентификатор гостя для логирования (номер карты, имя и т.п.)}.
Динамические QR-коды поддерживаются, например, в гостевых приложениях DeliveryMobile.
Совместимость
Совместим со всеми вариантами лояльности: Card, External
Развертывание
Актуальная версия опубликована здесь.
Для установки необходимо скопировать файл TrustedGuest.dll в папку %AppData%\Roaming\iiko\CashServer\EntitiesStorage\Plugins\WaiterServer\
Если плагин iikoWaiter на старте видит по вышеуказанному пути TrustedGuest.dll, то он его грузит, автоматически включает режим перекодировки и логирует операции.
После установки для проверки нужно зачекинить через вейтер случайный текст, затем выполнить поиск по логу плагина: должно быть упоминание TrustedGuest
Конфигурирование
Настраивается серез собственный файл конфига TrustedGuestConfig.xml в папке %AppData%\Roaming\iiko\CashServer\PluginConfigs\WaiterServer
В файле разместить ключ декодирования. Ключи шифрования и декодирования значения должны совпадать.
Обновление
Технология автообновления плагинов не обновляет библиотеку расширения, поэтому доступно только ручное обновление.
Поддержка
Логирование работы библиотеки расширения реализовано в логе WaiterServer.
Логируем в логе WaiterServer операции: вход, выход, внутренние эксепшены.