Дублирование чеков

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
andin73
Сообщения: 1
Зарегистрирован: 13 июл 2017, 15:22

Дублирование чеков

Сообщение andin73 » 13 июл 2017, 15:31

Здравствуйте, команда KKMSERVER.
Вчера пробили чек на пеленки, работали, пробивали, а потом через 2 часа чек на пеленки еще раз пробился сам, без действия кассира.
Подобная ситуация была и ранее (повторная печать чека, но тогда не стали разбираться - думали единичный случай).
Что проверить, посмотреть, покрутить ?
Лицензия приобретена

Audim
Администратор
Сообщения: 1703
Зарегистрирован: 17 мар 2015, 18:36

Re: Дублирование чеков

Сообщение Audim » 13 июл 2017, 20:29

В замом сервере защита на этот случай есть - для каждой команды свой id (поле "IdCommand").
Команда с таким-же ID не выполнится.

Но повторные чеки идут у клиентов в основном из браузера.

Ошибка такая:

На страничке лежит web форма.
И поле "IdCommand" заполняется уникальным ID в момент отправки формы а не до генерации формы.

Что происходит:
При отправке формы на сервер (Submit) код генерит новый ID.
Код выполняет команду печати чека.
Но если после этого:
-не было команды браузеру на переход на другую страницу
-в браузере нажать "Обновить"
-или браузер был закрыт а затем отрыт с восстановлением страниц
-или машина была перегружена и открыли браузер а он стал восстанавливать страницы
То опять выполнится код отправки формы (Submit), опять сгенерится новый ID и чек благополучно напечатается.

Чтобы этого не было надо генерить ID до отправки формы браузеру.
И хранить этот ID в данных формы.
И тогда после нажатия кнопки "Обновить" код сработает, но со старым ID!
И kkmserver поймет что эта команда уже была и не будет ее выполнять!.

Ответить