Перейти к содержанию

Диагностика — r_keeper 7

С чего начинать

Журнал агента:

cd C:\broni-sidecar
Get-Content .\logs\sidecar.log -Tail 100

Только ошибки:

Select-String -Path .\logs\sidecar.log -Pattern '"level":"(error|warn)"' | Select-Object -Last 40

Состояние службы:

Get-Service broni-rk7-sidecar

Версия агента:

.\sidecar.exe version

Не подключается к r_keeper

Начните с диагностики — она проверяет весь набор операций, которые использует агент, и ничего не меняет:

.\sidecar.exe probe --rk7-host 127.0.0.1 --rk7-port 15151 --rk7-login ЛОГИН --rk7-password ПАРОЛЬ

Соединение не устанавливается

  1. XML-интерфейс midserv выключен. Самая частая причина. Включается в настройках r_keeper, требует перезапуска midserv.
  2. Другой порт. По умолчанию 15151, но в конкретной установке может отличаться — уточните у ИТ-специалиста ресторана.
  3. Локальный межсетевой экран. Проверьте доступность порта:

    Test-NetConnection -ComputerName 127.0.0.1 -Port 15151
    
  4. Агент не на том сервере. Он должен стоять на кассовом сервере r_keeper.

Неверный логин или пароль

Проверьте учётные данные сотрудника в r_keeper: у него должны быть права на чтение заказов и работу с бронями. После смены пароля выполните:

.\sidecar.exe stop; .\sidecar.exe set-rk7-creds; .\sidecar.exe start

Ошибка сертификата после ранее успешной работы

Агент запоминает отпечаток TLS-сертификата кассового сервера при привязке и дальше принимает только его. Это защита от подмены. Если сертификат заменили законно:

.\sidecar.exe stop
.\sidecar.exe set-rk7-creds --repin
.\sidecar.exe start

В журнале — ошибка 5239 (скидка не применяется)

r_keeper сообщает об отсутствии лицензии «XML: Save Order». Она нужна, чтобы записать скидку в заказ. Признак: брони создаются и снимаются нормально, счета уходят в Брони, а скидка в чеке не появляется.

Лицензия приобретается у поставщика r_keeper и ставится на кассовый сервер; после установки перезапустите агента:

.\sidecar.exe stop; .\sidecar.exe start

Само бронирование лицензии не требует и работает без неё.

В журнале — ошибка 3053 (скидка применилась только один раз)

Discount/markup ... already exists in order. — тип скидки заведения допускает только одну строку скидки в заказе. Первая скидка проходит, а уточнение суммы (гость дозаказал) — уже нет, и гость остаётся со скидкой от первоначального счёта.

Лечится сменой типа скидки в r_keeper на тот, который допускает несколько строк. Определить такой тип по настройкам нельзя — типы с одинаковыми на вид флагами ведут себя по-разному. Проверяйте на деле: примените скидку к пробному заказу дважды и посмотрите, прошла ли вторая. Выбранный тип укажите в личном кабинете Брони.

В журнале — ошибка 3149 (скидка не применяется ни у кого)

There are no rights for item ... (Discount). — станции или сотруднику, от имени которых работает агент, не разрешён этот тип скидки. Затрагивает всех гостей заведения. Выдайте права на тип скидки в настройках r_keeper либо укажите в личном кабинете другой тип.

Ошибки 5239, 3053 и 3149 — про настройку заведения, а не про сбой

Агент не повторяет такие попытки по кругу и сообщает о каждой один раз: их нельзя «пережить» повторной отправкой — нужно поправить настройку r_keeper. Полный список того, что должно быть готово на площадке для скидок: Требования для скидки в счёте.


Не подключается к Брони

Проверьте доступ наружу

Test-NetConnection -ComputerName broni.io -Port 443

Закрыт — вопрос к ИТ-специалисту ресторана: нужен исходящий HTTPS с кассового сервера. Часто мешает корпоративный прокси или фильтрация трафика антивирусом.

Привязка не проходит

  • Код привязки уже использован или просрочен. Коды одноразовые. Запросите новый в личном кабинете партнёра.
  • Опечатка в коде. Формат XXXX-XXXX, вводится целиком.
  • Не тот адрес сервера. Агент печатает его строкой Enrolling with … — там должен быть рабочий адрес Брони. Другой адрес означает сборку для тестового стенда или запуск с флагом --backend.

Площадка не появляется в личном кабинете

  1. Убедитесь, что служба запущена: Get-Service broni-rk7-sidecar.
  2. Проверьте в журнале успешные check-in.
  3. Убедитесь, что привязка завершилась — рядом с sidecar.exe должны быть sidecar.yaml и secrets.bin.

Служба не запускается

install завершается ошибкой

PowerShell должен быть запущен от имени администратора — регистрация службы Windows требует прав.

Служба стартует и сразу останавливается

Смотрите logs\sidecar.log. Типичная причина — агент не может прочитать sidecar.yaml, то есть привязка не выполнена:

cannot read sidecar.yaml — run `sidecar.exe enroll` first

Выполните шаг 5 установки.

После переноса папки на другой сервер ничего не работает

secrets.bin расшифровывается только на исходной машине. Нужна новая привязка с новым кодом — скопировать установку нельзя.


Заказы и брони

Бронь создана, а заказ в r_keeper не появился

  1. Стол не сопоставлен. Проверьте сопоставление столов в личном кабинете партнёра: столу в Брони должен соответствовать стол r_keeper.
  2. Список столов устарел. Дождитесь очередной синхронизации или запустите её из личного кабинета.
  3. Неверные служебные коды. Если в журнале ошибки при создании заказа, проверьте rk7Defaults — см. Параметры настройки.

Закрытые счета не доходят до Брони

Очередь отправки — data\spool\pending. Пока нет связи, файлы копятся и уходят после восстановления. Удалять их нельзя: это данные для расчёта комиссии.

Записи в data\spool\dead — то, что сервер отклонил. Передайте их в поддержку.

Расхождение по времени

probe печатает расхождение часов кассового сервера с агентом. Заметное расхождение приводит к неверному определению интервалов броней — настройте синхронизацию времени на сервере.


Что приложить к обращению в поддержку

  1. Вывод команды:

    .\sidecar.exe probe --rk7-host 127.0.0.1 --rk7-login ЛОГИН --rk7-password ПАРОЛЬ
    

    (пароль в выводе не печатается)

  2. Файл logs\sidecar.log.

  3. Версию агента (.\sidecar.exe version) и версию r_keeper.
  4. Номер брони и время, когда ожидалось действие.
  5. Содержимое data\spool\dead\, если оно не пустое.

Ошибки мы видим и без обращения

Агент автоматически сообщает нам о своих внутренних ошибках — с версией и идентификатором площадки. Данные гостей и содержимое счетов при этом не передаются.

Обратиться в поддержку