Чек-лист тестирования ПО интегратора №1/2

  • 1) Будет использоваться дизайн чека ВебКассы?
  • 2) Реализована ли отправка запросов внутри каждой кассы последовательно, дожидаясь ответа/таймаута на предыдущий? (По разным кассам запросы могут отправляться одновременно, по одной -- вызовут ошибку.)

Какие операции будут использоваться в ПО из списка ниже?

  • 3) Продажа (компания продаёт клиенту позицию, получает деньги)
  • 3.1) Нескольких позиций в одном чеке
  • 3.2) Несколько типов оплаты в одном чеке (пример: часть наличными, часть картой)
  • 4) Продажа маркированных товаров (лекарства, алкогольная продукции и прочее, подлежащее маркировке)
  • 5) Возврат (компания возвращает деньги клиенту)
  • 6) Покупка (компания покупает у клиента позицию, отдаёт деньги)
  • 6.1) Нескольких позиций в одном чеке
  • 6.2) Несколько типов оплаты в одном чеке
  • 7) Возврат покупки товара/услуги (клиент возвращает деньги компании)
  • 8) Скидки, купоны, сертификаты, ваучеры
  • 8.1 ) Наценки
  • 9) Внесение средств в кассу
  • 10) Изъятие средств из кассы
  • 11) X-отчёт (промежуточный)
  • 12) Z-отчёт (закрывающий смену) (требуется 1 раз в течение 24 часов с момента открытия смены, иначе следующие запросы вернут ошибки)

Рекомендации:

  • а) Использовать одновременно одну учётную запись пользователя на одной кассе, чтобы избежать ошибки параллельных операций по кассе
  • б) Использовать запрос api/v4/Ticket/PrintFormat для получения печатной формы чека в актуальном соответствии требованиям регулятора
  • в) Обновлять токен при получении ошибки авторизации, а также 1 раз в 16-24 часа для профилактики ошибки авторизации
  • г) Отображать ошибки пользователю, не повторять запрос без изменений (кроме TimeOut), чтобы избежать подозрения во флуде от кассы
  • д) Не отправлять новый запрос до получения ответа или таймаута на предыдущий, чтобы избежать ошибки параллельных запросов по одной кассе
  • е) Создавать чеки и Z-отчёт по кассе только по API, чтобы избежать ошибок обработки соседних запросов API и Веб
  • ж) В полях Price, Sum, Discount, Markup, Tax передавать до 2 цифр в дробной части, в Count — до 3 цифр; при необходимости заранее округлять математически на стороне ПО (0~4 = +0, 5~9 = +1), чтобы избежать ошибки ожидаемого и переданного налога и иных
  • з) Значения полей: Sum (0.00 – 999999998.99), Price (0.00 – 999999998.99), Count (0.000 – 4294966.999), Discount (0.00 – 999999998.99), Markup (0 – 999999998.99), Tax (0.00 – 999999998.99), Change (0.00 – 999999998.99), Total (0.00 – 999999998.99), чтобы избежать ошибки диапазона значений
Теги