Бронирование отелей
В этом разделе описаны методы API, которые позволяют создавать и отменять заказы на бронирование отелей, запускать и отменять процессы оплаты брони. Эти методы имеют общие свойства:
Определения
Асинхронный метод — метод, который только инициирует какой-либо процесс, а результат работы нужно получать периодическим вызовом другого метода.
Офер — предложение пользователю с определенной суммой к оплате. Включает в себя данные об отеле, параметры номера, тип питания, условия отмены, даты бронирования, количество гостей, возраст детей и другие параметры, влияющие на стоимость предложения.
Sold-out — ситуация, при которой после резервирования может оказаться, что номер офера уже продан, или уже недоступно бронирование номера на тех же условиях.
Резервирование номера — процесс, при котором происходит проверка доступности номера с параметрами, указанными в офере. Также возможна отправка сообщения партнеру и отелю о том, что номер зарезервирован и в ближайшее время ожидается оплата — для уменьшения вероятности sold-out.
Токен резервирования — идентификатор набора условий бронирования номера отеля, действующих в настоящее время. Необходим для создания заказа. При попытке использовать токен резервирования с устаревшими условиями метод создания заказа вернет ошибку.
Токен возврата — идентификатор набора условий отмены заказа, действующих в настоящее время. Необходим для запуска процесса отмены заказа. При попытке использовать токен возврата с устаревшими условиями метод отмены заказа вернет ошибку.
Сценарии использования
Бронирование номера в отеле c полной оплатой
С помощью метода GET hotels/booking/offers/{offer_id} можно запросить полную информацию о предложении по номеру отеля — она отображается вместе с формой для ввода информации о гостях и кнопкой Оплатить. При нажатии кнопки оплаты начинается процесс резервирования номера методом POST hotels/booking/orders/create, в котором можно указать промокод для снижения стоимости заказа. После завершения резервирования создается заказ, и пользователь перенаправляется на страницу оплаты в Яндекс Путешествиях. Метод POST hotels/booking/orders/{order_id}/payment/start запускает процесс оплаты, о результатах которого можно узнать с помощью метода GET hotels/booking/orders/{order_id}/status.
Отмена заказа
Метод GET hotels/booking/orders/{order_id}/refund/calculate позволяет рассчитать сумму, которую получит пользователь в случае отмены заказа. После подтверждения того, что пользователь согласен с условиями возврата, выполняется отмена заказа.
Заголовки
В HTTP-заголовках передаются общие параметры, которые напрямую не влияют на результат запроса.
Обязательные заголовки
Заголовок |
Описание |
|
Токен, полученный от OAuth-сервера Яндекса. |
|
IP-адрес пользователя. |
|
User Agent пользователя. |
|
Ключ сессии пользователя — к нему будут привязаны все заказы, созданные пользователем. Также он ограничивает доступ к получению информации и управлению заказом — все операции с заказом будут возможны только при указании ключа той сессии, в рамках которой создан заказ. Максимальный размер — 64 символа. Рекомендуется использовать GUID. |
Необязательные заголовки
|
Произвольный идентификатор запроса для логирования и отладки. |
|
Формат содержимого. На данный момент возможно только значение |
|
Идентификатор партнера. Несмотря на то, что сервер API может идентифицировать партнера по токену авторизации, стоит также передавать его в заголовке для поиска проблем.
Например: |
|
Идентификатор пользователя. В некоторых сценариях на основании этого параметра возможна персонализация. |