Новый механизм пробития чеков
Скачать раздел в PDF
Последовательность действий при пробитии чеков по старому механизму:
- Отправляем запрос в сбербанк на оплату;
- Получаем ответ от сбера;
- Печатаем слип;
- Фиксируем получение оплаты в заказе;
- Отправляем на печать билеты в ККМ сервер;
- Получаем успешный ответ, фиксируем успешный заказ в ПО
(отправляем онлайн-чек, получаем страховку, взаимодействие с внешними API, ставим статус "пробит" у билетов и т.д);
- Переадресация на страницу успешной оплаты.
Т.к. логи показывают, что процесс валится на шаге 5,
оптимальным решением проблемы было бы независимая фиксация успешного заказа от печати билетов.
Таким образом, в новом механизме последовательность такая:
- Отправляем запрос в сбербанк на оплату;
- Получаем ответ от сбера;
- Фиксируем успешный заказ в ПО
(отправляем онлайн-чек, получаем страховку, взаимодействие с внешними API, ставим статус "пробит" у билетов и т.д) - закрываем заказ. На этом шаге билеты помечены как пробитые и будут в посадочной ведомости, по ним можно сделать возврат и распечать дубликат;
- Выводим на экран информацию по заказу (номера билетов, онлайн-чек, номер заказа);
- Отправляем на печать весь комплект чеков (слип-чек, билеты, страховки);
- В случаем ошибок на предыдущем шаге, показываем кнопку для повторной отправки на печать;
- В случае успеха - переадресация на финальную страницу.
По экранам, на 4 шаге:

Если ККМ сервер не вернул успешный ответ печати билетов, экран остается висеть в таком состоянии (при успешной печати выводит стандартный экран "не забудьте забрать билеты").
Через 15 секунд появляется кнопка, которой можно принудительно отправить команду на печать всего комплекта:

При нажатии на кнопку пользователю будет выведено такое сообщение:

Таким образом, решаются следующие проблемы:
- Сразу после оплаты билет в нашем ПО и во внешних компаниях будет помечен как пробитый, человек гарантированно будет в посадочной ведомости, и это не зависит от настроения ККМ-сервера;
- Такие случаи бывают единичные, скорей всего со второго раза будет все успешно напечатано;
- Если ситуация не решилась, в любом случае на экране можно увидеть номер заказа и номера всех билетов, и это во многом упростит решение проблемы:
- можно сказать клиенту, чтобы просто сфоткал номера билетов (или перешел по ссылке в QR коде), и сел по ним;
- можно по номерам распечать дубликат;
- можно по номерам сделать возврат;
Тестирование продажи чеков на терминале
Скачать раздел в PDF
Перед тем, как начать пробивать чеки на терминале, необходимо корректно настроить оборудование и кассы.
Тестирование с принтерами
- Добавляем в ККМ сервер оборудование;
- Заходим на главную страницу терминала или
рабочего места кассира (чтобы это оборудование добавилось в базу);
- Запоминаем ID печатающего устройства (через "список устройств" в тесте оборудования ККМ сервера);
- В списке касс ККМ добавляем в выбранное кассу это устройство
Внимание!
Если это оборудование было привязано к другим кассам (например, тестировалась другая компания), необходимо предварительно отвязать его от всех других касс;
- Закрываем все кассовые смены, которые были привязаны к этому пользователю:
- Печатаем билеты.
Тестирование с эмуляторами
Т.к. ККМ сервер не имеет такого типа устройства, как эмулятор принтера чеков, необходимо дополнительно выполнить действия:
- В пункте 1 добавляем устройство "KKT Эмулятор", все остальные пункты без изменений;
- После пункта 5 в выбранной кассе ККМ ставим дополнительную галочку "Эмуляция принтера чеков".
Эквайринговое оборудование
Для ПО не имеет роли, тестировать с эмулятором экваринга или с живым устройством, дополнительно настраивать ничего не нужно.
Единственно, нужно проследить, чтобы в устройствах ККМ Сервера было только одно оборудование эквайринга.