Интеграция с ПО UPOS через библиотеку GATE. 1.0 Платформа Win32.

- Титульная страница
- Группы
- Структуры данных

Выполнение платежа с аварийной отменой
Расширенный функционал

В случае, если внешняя программа не обеспечивает гарантированной печати банковского чека, она может использовать следующую логику:

1. Выполнить функцию Оплата.
2. После успешного завершения оплаты, вызвать функцию Приостановить транзакцию и приступить к печати чека.
3. Если чек напечатан успешно, вызвать функцию Зафиксировать транзакцию.
4. Если во время печати чека возникла неустранимая проблема, вызвать функцию Откатить транзакцию для отмены платежа.
5. Если в ходе печати чека произойдет зависание ККМ или сбой питания, то транзакция останется в «подвешенном» состоянии. При следующем сеансе связи с банком она автоматически отменится.

Для корректного выполнения операций с функцией аварийной отмены необходимо придерживаться следующих правил:

1. Функция Приостановить транзакцию должна вызываться, только если оплата завершилась успешно – если возвращен код ответа 0.
2. Если вызов функции Приостановить транзакцию завершился ошибкой, операция должна считаться не выполненной, Откатить транзакцию или Зафиксировать транзакцию не должны вызываться. Если необходимо отменить операцию – то только ручной обработкой через письмо в банк с пояснением ситуации и приложением имеющихся документов. Причинами ошибок при выполнении функции Приостановить транзакцию могут быть:
   1. Не верная сумма операции (см. п 4.);
   2. Отсутствие связи с пинпадом;
   3. Ошибки в системном ПО пинпада (например, сбой файловой системы).
3. Функции Зафиксировать транзакцию или Откатить транзакцию должны вызываться, только если был успешный вызов Приостановить транзакцию.
4. В функции Приостановить транзакцию, Зафиксировать транзакцию, Откатить транзакцию обязательно должна передаваться корректная сумма операции.
5. Если касса работает по описанному выше алгоритму и функция Зафиксировать транзакцию вернет ошибку – откатываем операцию на кассе, товар не отдаем, если клиент считает, что деньги списаны – предлагаем клиенту написать претензию или сами пишем в Сбербанк с просьбой отменить операцию.
6. Если касса работает по описанному выше алгоритму и функция Откатить транзакцию вернет ошибку – необходимо обратиться в Сбербанк с информацией об операциях (чеки, контрольные ленты) c просьбой отменить эту операцию.
7. Авариная отмена предназначена только для операции «Оплата».

//Пример кода находится в стадии разработки