WebSocket и push
Состояние заказа
Покупатель подключается к /ws/orders/tracking/ по WSS. JWT можно передать
заголовком Authorization: Bearer <ACCESS_TOKEN>. Для клиентов без поддержки
заголовков доступен параметр access_token; не записывайте такой URL в журналы.
Неавторизованное или неактивное соединение закрывается с кодом 1008.
order.changed сообщает об изменении заказа и содержит event_id, order_id
и order_version. Дубликаты события и старые версии игнорируются. После подключения,
переподключения или пропуска версии перечитайте
/api/orders/roadmap/{order_id}/detail. Событие не заменяет этот HTTP-снимок.
delivery.tracking.changed сообщает об изменении доставки. Соответствующие ему
push и WebSocket могут иметь одинаковые notification_id и event_id:
объединяйте повторные запросы detail и не показывайте два оповещения об одном событии.
Правила отображения отменённой доставки описаны в сценарии заказа.
Для сборщика параметры событий и область очереди получаются через
/api/picker/realtime/metadata; основное состояние восстанавливается HTTP-методами
сессии и очереди. Разрыв соединения не подтверждает результат команды.
Регистрация push
После разрешения уведомлений зарегистрируйте текущую установку через
PUT /api/accounts/me/push-devices. Поля см. в справочнике.
device_id — локально сохранённый случайный UUID установки, а не аппаратный
идентификатор устройства. При смене FCM-токена повторите PUT для той же установки.
Передавайте окружение, соответствующее API; несовпадение возвращает 409.
При выходе или отключении push удаляйте только текущую установку через
DELETE /api/accounts/me/push-devices/{device_id} до удаления токена авторизации.
Данные push служат для выбора экрана и повторного чтения HTTP. Дедуплицируйте
уведомления по notification_id, если он есть. После открытия уведомления сначала
проверьте вход и получите доступный текущему пользователю заказ.
Изображение в рекламном уведомлении необязательно. Если загрузка не удалась, покажите текстовое уведомление. Успешная регистрация устройства и приём сообщения FCM не доказывают видимое получение: отдельно проверяйте получение и переход по нажатию при открытом, фоновом и завершённом приложении на целевых устройствах.
Версия: a0f83a6f89d582854b126a89a7623bb1d484a004 · TEST. Markdown