Оглавление |
---|
Описание
Столото – это сервис продажи лотерейных билетов, взаимодействующий с внешней товаро-учетной системой, а также с кассовой программой УКМ 5 согласно следующей схеме:
...
Потоки данных | Комментарий |
---|---|
1 | Типовой обмен данными между внешней системой товародвижения и кассовым решением СуперМаг УКМ 5. Используется стандартный конвертер обмена Импорт/Экспорт XML (версия 1.0), реализованный в кассовом решении. |
2 | Внутренний протокол обмена данными решения СуперМаг УКМ 5. |
3 | Протокол обмена данными с сервисом Столото. |
2.1.1 Процесс регистрации кассы в ЛС
Настройка
I. Каждую кассу, на которой предполагается продавать лотерейные билеты Столото, необходимо зарегистрировать на лотерейном сервере. Делается это следующим образом:
- Ретейлер сообщает сервису Столото количество касс, которое необходимо подключить к лотерейному серверу, и одновременно получает от него
инструкцию для генерации сертификатов.
- Сервис Столото присваивает каждой кассе уникальный номер.
- Сервис Столото сообщает ретейлеру уникальные номера, присвоенные кассам.
- С помощью утилиты генерации, ретейлер формирует файлы с сертификатами для каждой кассы, либо один сертификат для всех касс.
- Ретейлер выполняет действия по настройке касс, описанные ниже.
II. Настройки кассы происходят на кассовом сервере УКМ 5 по адресу: Магазин – Типы касс, где нужно выбрать тип кассы и нажать кнопку Настройки:
1. Для начала, необходимо добавить новые файлы конфигурации Столото в выбранный тип касс. Для этого, в открывшемся окне настроек типа касс нужно выполнить экспорт текущего типа касс с помощью кнопки Экспорт:
2. Скачанный архив необходимо открыть и добавить файл loto.conf в папку applications/sale/ и файл loto.js в папку applications/sale/scripts/.
3. После добавления файлов нужно сделать импорт конфигурации типа кассы при помощи кнопки Импорт:
4. Далее, в файле conf/applications/sale/sale.conf необходимо добавить в раздел plugins следующий параметр:
{ include file("conf/applications/sale/loto.conf") }
5. Затем нужно отредактировать файл loto.conf, указав в нем следующее:
- baseUrl – адрес шлюза (высылается сервисом Столото);
- responseTimeout – тайм-аут ожидания ответа от лотерейной системы;
- terminalNumber (terminal_id) – высылается представителями Столото, которые распределяются по кассам самим ретейлером. С технической точки зрения, не имеет значения, какой кассе будет присвоен определенный terminal_id. Главное правило – присваивать по одному terminal_id каждой кассе. Ретейлеру в будущем рекомендуется отслеживать данный момент при изменении настроек, перезаливке касс и т. д.
Согласно инструкциям и требованиям, необходимо сгенерировать клиентский сертификат и ключ от него (Требования_к_сертификатам.docx, актуальную информацию по требованиям и инструкцию по генерации клиентских сертификатов необходимо уточнять у представителей сервиса Столото). Посредством OpenSSL создать файл пары ключ-сертификат и поместить в хранилище с помощью утилиты KeyStoreExplorer (open-source) (Создание хранилища (STOLOTO).docx):
Созданное хранилище ключей keyStore.p12 поместить на кассу в домашний каталог пользователя ~/.config/keys/keyStore.p12 и прописать полный путь до файла хранилища в значении параметра keyStorePath.
Пароль от хранилища прописать в параметре keyStorePassword, который указали на этапе создания хранилища.
Названия лотерей задаются параметром gamesNames. Формат параметра: "ХХХХ: Название;YYYY: Название", где "ХХХХ", "YYYY" - Код лотереи (GAME_ID), "Название" - название лотереи, как должно быть в чеке. Например: “5101: Лото - Спортлото 6 из 45;5536: Лото - Спортлото 5 из 36 (+1);4420: Лото - Спортлото 4 из 20;5150: Лото - Спортлото 7 из 49;7105: Бинго - Жилищная лотерея;7115: Бинго - Золотая подкова;7103: Бинго - Русское лото”
Числовые лотереи:
- keyStorePath – файл хранилища ключей для безопасного доступа keyStore.p12 расположение файла ~/.config/keys/keyStore.p12 (может иметь другой путь). Хранилище ключей создаётся отдельным ПО KeyStore Explorer (
- Прописать пароль от хранилища keyStorePassword (придуманный на предыдущем шаге)
- Названия лотерей задаются параметром gamesNames. Формат параметра: "ХХХХ: Название;YYYY: Название", где "ХХХХ", "YYYY" - Код лотереи (GAME_ID), "Название" - название лотереи, как должно быть в чеке.
- Указать СКУ лотерейного билета goodsId
baseUrl – адрес шлюза
Тест: https://ga-agent.russian-lotteries.net:51443
Продакшен: https://agent.stolotogate.ru:51443
responseTimeout - тайм-аут ожидания ответа от лотерейной системы
terminalNumber - пришлют представители Столото (terminal_id), которые распределяются по кассам самим Ретейлером. С технической точки зрения не имеет значения, какой id для какой кассы будет присвоен. Главное правило – 1 касса = 1 id. Ретейлеру в будущем рекомендуется отслеживать данный момент при изменении настроек, перезаливке касс и тд.
- Настройка клавиатуры для кнопочной кассы:
- Адрес ЛС для подключения.
- Тайм-аут ожидания ответа от ЛС
- Код товара, идентифицирующего продажу ЛБ
Для каждой кассы в УКМ5:
- Указать присвоенный идентификатор терминала.
- Разместить файл с сертификатом.
...
...
...
...
...
Кассовые операции с лотерейными билетами
Продажа лотерейного билета
ПРОДАЖА | |
---|---|
Клавиатурная касса | Touch-касса |
1. На клавиатурной кассе, вызов функции Продажа лотерейного билета может осуществляться как специальной кнопкой, так и выбором соответствующего пункта в кассовом меню: Если функция вызвана, система предлагает считать штрихкод лотерейного билета: 2. Как только штрихкод считан, касса запрашивает информацию о лотерейном билете у сервера Столото. Если, согласно ответу сервера, данный билет может участвовать в нескольких тиражах, то касса предложит кассиру выбрать нужный тираж: 3. После того как штрихкод лотерейного билета зафиксирован кассой и билет соотнесен с определенным тиражом, система запрашивает номер телефона покупателя: 4. Необходимо ввести номер телефона и нажать Ввод: 5. Как только номер телефона будет зарегистрирован, лотерейный билет автоматически добавится в чек: 6. В одном чеке возможна продажа нескольких лотерейных билетов из одного или разных тиражей: Оплата чека с лотерейными билетами происходит штатным образом. | 1. На touch-кассе, за вызов функции Продажа лотерейного билета отвечает специальная опция меню: 2. При выборе данной опции система предлагает считать штрихкод лотерейного билета: 3. Как только штрихкод считан, касса запрашивает информацию о лотерейном билете у сервера Столото. Если, согласно ответу сервера, данный билет может участвовать в нескольких тиражах, то касса предложит кассиру выбрать нужный тираж: 4. После того как штрихкод лотерейного билета зафиксирован кассой и билет соотнесен с определенным тиражом, система запрашивает номер телефона покупателя. Необходимо ввести номер телефона и нажать Ввод: 5. Как только номер телефона будет зарегистрирован, лотерейный билет автоматически добавится в чек: 6. В одном чеке возможна продажа нескольких лотерейных билетов из одного или разных тиражей: Оплата чека с лотерейными билетами происходит штатным образом. |
Отмена покупки лотерейного билета
ОТМЕНА ПОЗИЦИИ | |
---|---|
Клавиатурная касса | Touch-касса |
1. Если лотерейный билет, который требуется удалить, не отмечен (не выделен) в составе чека, то необходимо вызвать кассовое меню с помощью запрограммированной кнопки: 2. В меню нужно воспользоваться опцией Изменение чека: 3. Если же лотерейный билет, который требуется удалить, отмечен (выделен) в составе чека, то также необходимо вызвать кассовое меню: 4. Для выделенного билета в кассовом меню сразу будет доступна опция Удалить позицию: 5. Запись об удаленном лотерейном билете отображается в зачеркнутом виде в начале состава чека: | 1. Удаление лотерейного билета из состава чека происходит штатным образом: достаточно просто отметить его в списке и воспользоваться кнопкой отмены товарной позиции: 2. Запись об удаленном лотерейном билете отображается в зачеркнутом виде в начале состава чека: |
Отмена чека с лотерейными билетами
ОТМЕНА ЧЕКА | |
---|---|
Клавиатурная касса | Touch-касса |
1. Полностью отменить чек можно не зависимо от того, сколько в нем лотерейных билетов и какие из них уже удалены. Для этого необходимо вызвать кассовое меню с помощью специальной кнопки: 2. В кассовом меню сразу будет доступна искомая операция: | Полностью отменить чек можно не зависимо от того, сколько в нем лотерейных билетов и какие из них уже удалены. Отмена чека с лотерейными билетами производится с помощью штатной кнопки: |
Ошибки: отсутствие связи с сервером
ОТСУТСТВИЕ СВЯЗИ С СЕРВЕРОМ СТОЛОТО | |
---|---|
Клавиатурная касса | Touch-касса |
1. При отсутствии интернет-соединения или в силу иных причин, связь с лотерейным сервером периодически может прерываться. В случае отсутствия связи с сервером Столото, невозможно полноценно произвести отмену лотерейного билета в чеке. Касса обязательно сообщит об этом и запросит разрешение повторить попытку связаться с сервером Столото: 2. Если, в итоге всех предпринятых попыток, связь с сервером так и не восстановится, то касса оповестит пользователя о необходимости сохранить бланк отмененного в чеке лотерейного билета и передать информацию о нем администратору магазина. Выбрасывать такие лотерейные билеты нельзя: | 1. При отсутствии интернет-соединения или в силу иных причин, связь с лотерейным сервером периодически может прерываться. В случае отсутствия связи с сервером Столото, невозможно полноценно произвести отмену лотерейного билета в чеке. Касса обязательно сообщит об этом и запросит разрешение повторить попытку связаться с сервером Столото: 2. Если, в итоге всех предпринятых попыток, связь с сервером так и не восстановится, то касса оповестит пользователя о необходимости сохранить бланк отмененного в чеке лотерейного билета и передать информацию о нем администратору магазина. Выбрасывать такие лотерейные билеты нельзя: |
Настройки
Настройки интеграции с системой Столото описаны здесь.