基本流程
实时搜索模式,是指通过艺龙搜索接口获取酒店产品详情、房态库存和产品价格等信息,数据时效性高。
实时搜索模式包含两个核心接口:列表搜索(hotel.list)和详情搜索(hotel.detail)。
下面流程图中使用的不同颜色:黄色代表必选接口,绿色代表备选接口。
1. 获取符合搜索条件的酒店列表
列表搜索hotel.list可以通过指定城市、坐标、价格范围等条件实时搜索、过滤可卖酒店的列表,并排序。使用该接口时,通过ResultType参数控制需要返回的数据范围。
同时可以下载静态信息存储到本地,减少每次调用返回的数据包大小,提升性能。
2. 获取酒店的库存、价格、价格计划信息
详情搜索hotel.detail接口用来获取产品、库存、价格信息,以及酒店的基础信息,如酒店名称、位置、图片等。
如果已经下载了静态信息,则可以通过Options字段控制返回的数据范围。
3. 订单流程-创建订单之前
订单创建之前进行各项信息校验,是为了及时将错误信息反馈给用户,同时也提高了创建订单时的成功率。
数据校验hotel.data.validate是创建订单之前进行订单数据校验的接口。在进入订单填写页之前,调用此接口校验房态库存、总价等信息。
此外还有一些其他校验接口来提升用户体验,确保下单支付的一次性成功率,这些接口都是可选的。
信用卡验证common.creditcard.validate也可以在用户输入信用卡时进行异步校验。
hotel.data.validate用于校验产品价格和库存是否有效,一般用于用户点击下单时,在调用hotel.order.create之前使用。
hotel.data.booking用法和hotel.data.validate类似,只是还可以校验产品有效性,不推荐使用。
4. 订单流程-创建订单
使用hotel.order.create接口,相关字段从hotel.detail接口的返回值和缓存的静态文件(如果缓存了)中获取。创建订单可以选择同时成单及支付,也可以选择仅创建订单。仅创建订单不需要填写支付信息,但是需要在最晚支付时间前调用hotel.order.pay接口进行支付。
5. 订单运营
需要调用hotel.incr.order实时更新订单状态,以便处理自己的业务或者向用户展示。hotel.order.create会返回最晚取消时间,在此之前可以调用hotel.order.cancel来取消订单。订单创建成功后,可以通过hotel.order.feedback让用户反馈入住状态(非必须、但建议使用)。
查询订单详情使用hotel.order.detail。当订单详情中出现了确认反馈时间点ConfirmPoint的时候,如果觉得这个时间太长,可以使用hotel.order.promote进行催确认。老订单状态变化为特定状态(已结账、删除、NoShow、删除另换酒店)时使用关联订单接口hotel.order.related可以查询新的订单信息,关联订单的产生及详细说明查看该接口的文档。
扩展流程
1.如果想要与自有酒店进行整合,则必须下载酒店xml静态信息,并周期性更新。通过全量调用hotel.detail接口获取产品、价格、库存等动态信息,存储到本地,自建搜索以便与自有酒店的数据整合在一起供用户使用。为了保证酒店列表数据的时效性,还需要使用hotel.incr.data获取酒店的变化信息,更新本地缓存。本地缓存数据做列表页数据可以缓存时间长点,详情页面建议不超过10分钟。(深度阅读:建议抓取策略)
2.用户选择某一酒店后通过hotel.detail接口实时获取并展现酒店详情及产品、库存、价格等动态信息。同时也可以利用这些信息更新列表本地缓存。