# 对接说明

# 说明

通过提供企业直连标准API,让锦江酒店企业版客户进行系统对接,以获取锦江酒店相关数据,在客户系统上实现预订锦江酒店流程。

# 对接流程

# 1、酒店静态信息对接

# 相关接口:

酒店列表、酒店基本信息、酒店房型、酒店相册图片、品牌列表

# 对接方式:

对接方主要是以定时机制从上述接口同步数据到本地暂存和映射处理,定时同步推荐1-2次/天。下单时如果遇到酒店静态信息变化引起的失败,可实时访问相关接口并更新本地暂存数据。

# 2、房态信息对接

# 相关接口:

酒店房态、酒店实时房态

# 对接方式:

  • a. 酒店房态主要用于定时获取房态信息并在酒店搜索/列表/详情等功能页面向用户展示,酒店实时房态接口主要用于下单流程里即时获取房态信息;定时获取机制请参考“常见问题-接口访问相关”中的内容。
  • b. 对接方可选择在本地暂存房态数据,以满足自身系统相关功能需要,此时主要通过酒店房态接口定时获取数据;也可以不暂存房态数据而在每次需要时再实时访问这两个接口。

# 3、订单对接

# 相关接口:

酒店实时房态、下单预订、取消订单、订单查询、订单账单查询、支付接口、支付查询

# 对接方式:

# 1)下单过程

  • 步骤1:推荐对接方在订单填写页/酒店详情页等交互环节调用酒店实时房态接口(/hotel/getHotelRealRoomStatus)校验是否可订(主要是校验房量房价),并更新本地对应的暂存数据(如果有),自行决定校验不通过时的交互处理。
  • 步骤2:按下单接口(/booking/postOrder)定义及相关规则提交订单数据。若下单成功则返回锦江订单号,若下单遇到业务类失败(主要是不符合接口定义/业务规则、房态发生变化等),无需即时自动连续多次重试,因为重试的结果一般是相同的失败,其中对于房态变化产生的失败,建议有立即刷新暂存本地对应暂存数据的机制,然后视是否仍可订考虑重试下单 。
  • 步骤3:如果下单时出现接口超时或其它系统异常,对接方程序可进行自动补偿处理,建议间隔1分钟及以上调用订单查询接口(/booking/queryOrder)核实该单是否确定失败(即查询不到订单或者订单状态不是预订成功),再做下一步处理。
  • 备注:支付接口目前暂只用于下单后到转预。

# 2)下单后取消、获取订单入离状态、获取订单账单信息

  • a.取消订单:在符合当前订单取消规则的情况下调用取消接口(/booking/cancelOrder)。若出现取消接口超时或系统异常,可间隔1分钟及以上时间重试取消,或者调用订单查询接口核实订单是否是取消状态。
  • b. 获取订单状态:对接方可定时查询一笔订单的最新状态信息,其中已入住已离店订单多数含有房单信息(roomOrders节点)。定时频率需合适(例如2-8次/天),同时已经完结多天的订单不必再查询。
  • c. 获取订单账单信息:订单按结算规则出账后,可通过查询账单接口(/booking/queryConfirmationInfo)获取对应信息。支持提供账单的酒店范围另行说明。

# 对接协议

# 接口地址

https://域名/proxy/ms-corp-directly-connect/xxx (实际域名另行提供)

# 报文格式

遵循HTTP规范,提交方式为GET/POST,UTF-8编码,消息体采用标准JSON格式,消息头设置:

http header参数 说明
Content-Type application/json
accept(可选) application/json
fizz-appid 对接方申请后提供,例:fefedfdv-dcd5-40be-ba62-51c5848fadc1
timestamp 当前时间戳,例:1540281144468
sign 即token,生成方式:Token = DigestUtils.sha256Hex((appId + "-" + timestamp + '-' + key).getBytes(Charset.forName("UTF-8"))); 签名失败返回:custom auth reject

# 接口调用示例

curl --location --request POST 'https://xxxx.bestwehotel.com/proxy/ms-corp-directly-connect/proxy/ms-corp-directly-connect/hotel/getHotelInfo' \
--header 'Content-Type: application/json' \
--header 'timestamp: 1611564121949' \
--header 'sign: a65e320ce4555cc0d70f1b1f5b2daa0909a5c9bceee3ceac3bfbb518b595fcac' \
--header 'fizz-appid: fefedfdv-dcd5-40be-ba62-51c5848fadc1' \
--data-raw '{"innId":"128"}'
1
2
3
4
5
6