Please enable JavaScript.
Coggle requires JavaScript to display documents.
ntk-cashier Работа с кассой atol'а (Функционал (патч на создание тбл…
ntk-cashier Работа с кассой atol'а
Функционал
Отдаём chek-id ntk-payments до запроса в atol (ответ на POST)
Приём POST-
запросов от atol'а
Приём запроса производится по токену
патч на создание тбл operations,
operation_type в db-cashier
Накат
Откат
Приём POST-запросов от ntk-payments
Запись об операции
в db-cashier
Записываются все данные,
которые передал payments
Отправка запроса в atol
происходит через proxy
При получении ответа от atol'а записываем db-cashier
При получении POST'а
обновляется статус операции
fail + коммент-причина
done
Платёж производится по реестру (пачкой)
????? Формирование ссылки на чек
Работоспособность службы
можно проверить по
http://host:port/healthcheck/
????
Какие действия мы предпринимаем, если почта занимает больше 64 символов (у Атола 64 символа на почту отведено, у нас 255)
Проверить все обязательные и необязательные параметры (метод может работать без необяз-ых и не может без обяз-ых)
перечитка конфига
Негатив
Задвоение записей при разрывах связей
(Непонятно,как они задвоятся?)
Патчи
Двойной накат
Двойной откат
Недоступна бд cashier
Подключить службу к несуществующей проксе. Если служба ходит через proxy, то в логи повалятся сообщения, а запрос не отправится.
Недоступен ntk-payments
Недоступен Atol
Не получили POST от Atol'а
одновременный запуск аудита
Отправка
запроса
в Atol
при отсутствии почты
при длине почты >64 симв.
Повторный запрос в Atol с одним и тем же external_id
Нагрузка
(служба должна принимать
не более 1го запроса в секунду)
1 запрос в сек
2 запроса в сек
10 запросов в сек
Регресса нет. Служба новая
Аудит. Функционал
Актуализация в БД
Ошибка регистрации чека
Обновление статуса status=fail
Обновление timestamp
Добавление комментария к ошибке в поле text_error
успешная регистрация чека
Обновление timestamp
Заполнение полей информацией для проверки чека в ОФД
Обновление статуса status=done
Отправка запроса и
получение статуса из Atol
На начальном этапе берёт
записи из db-cashier, у которых
timestamp<(текущ.время-300 секунд)
И
Status in (wait)
ИЛИ status is null