...
1. Включите в шаблоне касс функциональность работы с юридическими лицами.
2. Перейдите в Интеграция → Внешние процессинги → кликните .
...
Настройки плагина будут отправлены на кассы. Перезагрузите кассы в линейке.
Начиная с версии 10.3.3.0 длина номера карты = 12 символов.
Категория карт на сервере
...
- Клиент (владелец карты) в мобильном приложении QP5 Club формирует динамический QR-код для идентификации.
- Сгенерированный QR-код состоит из 16 цифр (эти же цифры дублируются под QR-кодом на случай, если не удалось отсканировать код и его требуется ввести вручную):
- Первые 12 цифр - номер карты.
- Последние четыре цифры - это преобразованный хеш, вычисленный по определенному алгоритму, описанному ниже.
- Кассир сканирует QR-код или вводит его вручную на кассе.
- Все дисконтные карты загружаются из мастер-системы клиента (ERP) в SetRetail10, используя веб-сервис для импорта дисконтных карт (Импорт дисконтных карт и анкет клиентов из ERP в SetRetail10).
- При этом из входного json-файла (ERP) загружаются следующие данные:
card_number
(номер карты) должен быть загружен в поле number экземпляра внутренних карт “<internal-card>”.- Пример:
number="770000000070"
, формат - “Long“.
- Пример:
org_id
(идентификатор юридического лица) должен быть загружен в полеdebitor-number
контрагента внутренних карт (юридического лица)<counterparty>
.- Пример:
debitor-number="3079bb8c-6ce8-11ea-80d1-005056b2f60f“
, тип данных - “String“.
- Пример:
- Плагин на основании загруженных данных и времени сканирования QR-кода формирует проверочные 4 цифры:
- Конкатенация (склеивание) строк:
- Номер карты лояльности.
- Идентификатор юр. лица.
- Время сканирования QR-кода в UTC Unix Time, т. е. округленное текущее время до интервала 3 часа в меньшую сторону, например 16:46:30 → 15:00:00. Следует иметь в виду, что время преобразуется UTC Unix Time из GMT, а не из GMT+3.
- Полученная объединенная строка хешируется алгоритмом SHA1.
- Результирующий хеш преобразуется по алгоритму:
- Берутся первые 4 символа хеша.
- От каждого символа получается код символа ASCII.
- От каждого полученного кода символа берется первая цифра.
- Склеиваются символы в строку из 4 цифр.
- Конкатенация (склеивание) строк:
- Полученные 4 цифры сверяются с проверочными цифрами (последние 4 цифры отсканированного QR-кода).
- Если проверочные цифры совпали, то карта добавляется в чек.
- Если проверочные цифры не совпали, то проверяется предыдущий трехчасовой интервал по такому же алгоритму, т. е. меняется время сканирования с 15:00:00 на 12:00:00.
- Если новые вычисленные цифры совпали с проверочными, добавляеться карта в чек, в противном случае карта не добавляется.
- Следует учесть, что карта после идентификации добавляется в чек только в том случае, если она активна (это стандартное поведение).
- Пример для проверки.
- Время сканирования QR-кода (считается до миллисекунд) “1625495251725“, что соответствует 05.07.2021 14:27:31.725 GMT.
- Номер карты – “770000000070“.
- Идентификатор юридического лица – “3079bb8c-6ce8-11ea-80d1-005056b2f60f“.
- Округленное время сканирования до интервала 3 часов в меньшую сторону – “1625486400000“ (05.07.2021 12:00:00.000 GMT).
- Таким образом, получаем строку для вычисления хеша – “7700000000703079bb8c-6ce8-11ea-80d1-005056b2f60f1625486400000“.
- Хеш для строки – “8c40dff0f28c8ea33a36df65d3d458fcbbc0bca6“.
- По алгоритму, описанному выше, получаем 4 цифры – “5954“.
- Сравниваем с последними четырьмя цифрами QR-кода, видим, что они совпали, поэтому добавляем карту в чек (если она активна).
Запрет добавление карты без проверочного кода
Устаревшая версия Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
...