Пользовательский интерфейс платёжных терминалов имеет следующие особенности, отличающие его от обычных веб-сайтов:
- Обычные пользователи не могут и не должны понимать и решать какие-либо возникающие проблемы в работе аппаратного и программного обеспечения. Проблема, если она возникает, может быть либо проигнорирована (обойдена каким-либо способом), либо пользователю должно быть сообщено о невозможности работы.
- Даже специально подготовленные пользователи с особым допуском (обслуживающий персонал) работают с программным обеспечением в полевых условиях - без рабочего места, чаще всего без клавиатуры, нередко вообще без каких-либо дополнительных средств. Поэтому, если возникают какие-либо проблемы, то эти проблемы должны диагностироваться и обрабатываться по возможности автоматически.
Исходя из этого, любой отказ аппаратного или программного обеспечения по возможности не должен считаться фатальным с точки зрения продолжения работы программы. Например, при отсутствии бумаги в чековом принтере терминал может уйти в положение "Терминал временно не работает", однако состояние принтера при этом продолжает периодически отслеживаться, и при появлении бумаги терминал должен восстановиться в нормальный режим самостоятельно, не требуя каких-либо дополнительных действий от пользователя.
Каждый возникающий отказ имеет идентифицирующее его имя, которое определяется в зависимости от причин и характера возникающей проблемы - см.
Виды отказов терминала.
NDemia CashMatic KioskBrowser поддерживает внутренний список текущих отказов. При нормальной работе этот список пуст, при возникновении (возбуждении) отказа имя отказа добавляется в список, при снятии проблемы имя отказа удаляется из списка.
В зависимости от уровня серьёзности проблемы отказ может потребовать либо некоторых дополнительных программных действий, либо прекращения нормальной работы терминала, т.е. потребуется переход на
страницу неисправности - см.
Уровни серьёзности отказов,
Автоматический переход на страницу неисправности.
В зависимости от текущего момента работы пользовательского интерфейса отказ может быть либо обработан немедленно, либо обработка должна быть отложена до завершения некоторых действий пользователя - см.
Отложенные отказы.
Прикладной программист (разработчик
прикладных скриптов и
компонентов расширения) может предусмотреть собственную обработку для определённых
видов отказов (см
Обработка отказов терминала), добавить собственные виды отказов (см. метод
SetFailState объекта
CashMaticTerminal), а также изменить общий порядок обработки отказов в некоторых особых случаях (см.
Дополнительные условия обработки отказов).