Дублирование чеков / команд при работе из браузера

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Дублирование чеков / команд при работе из браузера

Сообщение Audim » 09 фев 2018, 17:08

Очень частая ошибка при регистрации чеков из браузера:
1. Идут повторные чеки.
2. Идет повтор команд на закрытие/открытие смены - из за этого идут ошибки.

Причина ошибка такая:

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

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

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

Ответить