Ответы с ошибками
Hotspot API возвращает результат двух видов: ошибку аутентификации (HTTP 401) или успешный ответ (HTTP 200). Пустой список гостей ошибкой не является. Ниже перечислены ситуации, с которыми вы можете столкнуться, и что делать в каждой из них.
Коды состояния HTTP#
| Код | Тело | Значение и что делать |
|---|---|---|
200 | {"success": 1, "otelde": [...]} | Успех. Обработайте список. |
200 | {"success": 1, "otelde": []} | Успех; в отеле никто не проживает. См. раздел о пустом списке ниже. |
401 | {"success": 0} | Нет заголовка ApiKey, или ключ не распознан. Не повторяйте запрос; проверьте ключ и сообщите администратору. |
404 | Страница ошибки | Неверный путь. Убедитесь, что путь в точности /public/json/customer/inhotel. |
405 | Страница ошибки | Использован метод, отличный от POST (например, GET из браузера). |
5xx / тайм-аут | — | Временная ошибка сервера или сети. Повторяйте запрос с растущими интервалами (30 с, 1 мин, 5 мин), а пока используйте последний успешно полученный список. |
Пустой список#
otelde: [] означает, что заселённых гостей в отеле нет; для небольших отелей вне сезона это нормально. Однако если при предыдущем запросе список был заполнен, а теперь внезапно пуст, обычно это ошибка персонала отеля (ошибочный массовый выезд, изменение статуса бронирования). Прежде чем закрывать все учётные записи Wi-Fi, убедитесь, что список пришёл пустым в двух запросах подряд.
Повторные попытки и тайм-ауты#
- Используйте тайм-аут запроса 10 секунд: даже у крупных отелей список возвращается быстрее.
- Повторяйте запрос при
5xxи сетевых ошибках; не повторяйте при401,404и405— это ошибки конфигурации. - Пока запросы завершаются с ошибкой, сохраняйте последний успешно полученный список. Закрывайте учётные записи только тех гостей, которые исчезли из списка в успешном ответе.
- Считайте ошибки подряд и уведомляйте администратора при превышении порога (например, 15 минут).
Типичные ситуации#
| Ситуация | Вероятная причина | Что делать |
|---|---|---|
| Гостя нет в списке | Ресепшен ещё не оформил заезд гостя, бронирование отменено, гость не отмечен как «в отеле» или уже выехал. | Покажите на портале сообщение «номер комнаты и фамилия не совпадают» и направьте гостя на ресепшен. Запрашивать список заново не нужно: гость появится при следующей синхронизации. |
| Несколько записей для одного номера | В номере проживает несколько гостей; каждый из них — отдельная запись. | Это нормально. Открывайте учётные записи по гостям (unique). |
Пустой identityNumber | Гость зарегистрирован без данных документа. | Для сопоставления используйте фамилию и дату рождения; в записи по закону № 5651 оставьте поле пустым и привяжите запись к unique. |
roomName не совпадает | Гость ввёл «0104» или «Номер 104» вместо «104»; значение — строка. | Нормализуйте обе стороны перед сравнением; не преобразуйте значение в число. |
checkout в прошлом, но гость всё ещё в списке | Гость продлил проживание или выезжает поздно, а ресепшен ещё не провёл это в системе. | Оставляйте доступ открытым, пока гость есть в списке; обновляйте окончание сессии, когда меняется checkout. |