中国航信酒店平台接口开发指南
发布时间:2012-03-31 10:31:24
发布时间:2012-03-31 10:31:24
中国航信酒店平台接口开发指南
V1.0.0
中国民航信息网络股份有限公司
2010年1月
目录
变更记录 2
1概述 4
2开发步骤 4
2.1申请使用接口的帐号: 4
2.2对酒店接口进行开发的步骤: 5
2.2.1阅读hotelbe接口文档,熟悉酒店的相关业务知识 5
2.2.2设计本地表结构,缓存酒店的信息 5
2.2.3 接收hotelce的酒店消息通知 6
2.2.4 查询通知消息 6
3技术支持 11
4 参考文档 13
HotelBE接口是中国航信TRAVELHUB酒店分销平台的下游接口,分销商可以通过此接口进行二次开发,将travelHUB平台上不同供应商的酒店引入到分销商呼叫中心系统、直客网站、差旅管理系统、后台管理系统当中,为分销商提供数据下载及同步、酒店查询、预定等功能,是可以为分销商提供无缝数据支持的先进技术接口。
该文档描述了中航信平台酒店接口开发步骤和方法,内容涉及平台相关的多个系统,具体的指令格式,请参见HotelBE和HotelCE开发文档。平台接口后台应用通过MQ服务提供,UTF-8编码格式。客户通过DirectLink统一访问地址,可以访问平台酒店的多个应用接口。每条指令都包括两部分:请求和返回,都有统一的XML格式,请求指令以
● 外网测试服务地址:http://202.106.139.49:9090/directlink/tbeController.do
● 生产服务地址:http://dlink.sohoto.com/directlink/send.do
提交指令均以httpPost请求的方式,参数名为request,即将请求XML串放到request参数中。UTF-8编码格式。
每个应用的接口指令通过其中的application元素区分该指令所要访问的平台应用,每条指令的application必须填写正确,否则请求的指令不能被相应的应用所处理,application区分大小写。本文涉及两个应用:
● hotelbe:提供给平台渠道查询预定酒店
● hotelce:提供给酒店发送相关信息给平台,同时平台会将酒店相关信息发给特定的渠道
您可以通过以下步骤使用中航信的酒店平台接口:
您需要向丹迪分支申请使用接口,获得申请接口的认证信息。
(1) 申请成为TravelHub平台渠道
航旅通的Office已经默认作为平台的渠道。渠道code等同于officeCode
(2)申请接口认证信息
申请认证信息需要说明:
● 开通测试还是生产系统
申请流程:
航信各分支机构处填写<<酒店预订技术接口(hotelbe)申请单>>,分支机构业务负责人签字后发送传真至010 ********,并发申请单电子版至chenxing@travelsky.com 。总部收到传真领导签字审核通过后三个工作日内开通接口,并将接口认证信息发送到申请单中的负责人邮箱。
(3)认证信息的格式
接口的认证信息放在指令的
<IdentityInfo>
IdentityInfo>
该认证信息要放在接口指令中,directLink会对每一条请求指令进行权限验证。
接口技术文档中着重讲了指令的格式和调用方式,技术实现上相对简单。开发接口前了解指令中每个元素的含义,熟悉酒店预订相关的业务知识是非常必要的。参考文档:<< HotelBE接口文档>>
由于酒店的信息量大,不仅包括酒店的静态信息,例如名称、地址、描述、电话、邮编、传真、行政区域、地标、房型描述等,而且包含动态信息,例如房型价格、配额、担保政策、预订政策等。因此接口客户必须对酒店的信息进行本地缓存,以提高客人的查询的速度和效率。客户需在熟悉业务的基础上,结合接口文档设计本地的表结构,缓存酒店的所有信息。
本地化缓存后,客户可以自己本地设置酒店的促销级别,灵活地展现客人查询后酒店的展示顺序和必要的信息。利用hotelbe的多酒店查询、单酒店查询指令,客户可以把查到的酒店信息缓存在本地数据库中。
建立酒店缓存时,请参考文档《中国航信HotelBE数据缓存接口描述》。
本地话缓存数据后,客人在客户网站的酒店查询操作都是查询本地的数据库。当酒店的信息发生变化时,酒店会发消息给平台,平台会给特定的渠道发送消息通知。客户在收到消息通知后,解析收到的XML,并对本地的数据进行更新。
我们这里发送的形式是:渠道提供的消息接收地址?messageXML=……(消息XML串)&msgID=……(消息ID)
例如:
● 房型可用性通知:酒店可能会对关闭某些房型,或者上线销售新的房型。
● 房价通知:酒店可能调整房型的价格。
● 政策通知:酒店可能调整预订或者担保等政策。
消息通知的类型和具体格式含义,请参照HotelCE相关文档。
某些情况下,可能导致客户没有收到必要的信息,而导致本地数据没有及时更新,例如:
● 客户的消息处理服务中断不可用
● 网络原因导致消息丢失或者不可到达
因此,客户可以调用指令查询某个时间段或符合一定条件的消息,由于消息的数量较大,我们可能对查询的条件进行限制,以减小对系统的压力,提高传输效率。
代理可发送消息查询指令查询某个时间段的所有通知消息,这样可以避免有些消息没有收到导致的数据同步不一致的问题。
代理通过发送httpPost请求,把查询的指令放到名为request的参数中。调用方法等同于调用HBE主动查询指令的方法。
生产请求地址格式:http://dlink.sohoto.com/directlink/send.do?request=...
测试请求地址:http://202.106.139.49:9090/directlink/tbeController.do?request=...
通过该指令查询一段时间内的通知消息的ID
示例:
YYYYMMDDTTMM,例如201006040800
YYYYMMDDTTMM,例如201006042459
< MessageType> MessageType >
IDRQInfo>
返回消息格式:
20000
MsgIDInfos >
●
●
● 查询限制:起始时间必须是同一天。
通过该指令查询一段时间内的通知消息
示例:
< MessageType >消息类型 MessageType >
●
● 若MsgId不为空,则按照消息ID查询消息,其他查询条件无效
⏹ MSGID是消息的ID,是唯一区分消息的标识。
⏹ Hotelce的消息ID: 日期(8位,YYYYMMDD)_服务编号(6位数字)_CE_数字序号(6位数字)。例如20100730_202124_CE_008690表示2010年7月30日服务号为202124的通知服务生成的第8690条hotelce消息。同一天可能有多个服务号,一般为2个服务,同一个服务每天发送的消息数字序号从000001开始递增排列。
● 时间跨度为10分钟,即查询时间段为10分钟。查询时间的分钟位只能是10的倍数,例如查询2010年月30日11点10分到2010年月30日11点20分的消息。BeginTime 为201003301110,EndTime为201003301120
● MsgName 要查询的通知消息类别名称,可取值及表示含义如下:
TransactionName为指令名称,例如SP_HotelOrderStatusNotifRQ;当取值为OldICSMessage时查询老HBE的房价类通知消息
< MessageType >消息类型 MessageType >,该元素查询老HBE的通知消息时用到;查询hotelce通知消息时取值为空。
返回消息格式:
20000
消息时间
返回示例:
20000
相关的业务问题请致电航旅通客服电话400-810-9191。
hotelbe接口技术支持以电子邮件为主,电话只处理紧急问题,比如下单全部失败,接口无法访问等紧急严重问题,其他问题请转邮件咨询。我们承诺邮件技术支持三个工作日内给回复。咨询邮件请参照下述的格式,以提高问题解决的效率。邮件发送至 yjsun@travelsky.com ;
邮件技术咨询问题描述参照以下格式:
1:使用hotelbe接口的用户认证信息
2:问题描述(文字性说明)
3:出现问题的接口访问地址,请求XML串和返回XML串
一个技术咨询邮件示例:
1:使用接口的用户认证信息:
2: 问题描述:调用单酒店查询接口查不到酒店信息
3: 出现问题的请求XML串和返回XML串:
访问地址: http://dlink.sohoto.com/directlink/send.do
请求串:
返回串:
00001
《HotelBE接口文档》
《HotelCE接口文档》
《中国航信HotelBE数据缓存接口描述》
《HBE二类指令》(老HBE通知消息)