酒店

接口公共协议更新时间:2024/01/30 15:36

协议说明

  1. 接口采用HTTPS的GET方式请求。

  2. 输入和输出参数都采用UTF-8编码。发送的请求体数据部分(即data参数)需要进行URLEncode处理。

  3. 接口域名:

               测试环境:动态接口域名:api-test.elong.com;静态信息域名:api.elongstatic.com/test

               生产环境:动态接口域名:api.elong.com;静态信息域名:api.elongstatic.com

    注意:动态接口域名用于调用非xml结尾的接口,静态信息域名用于调用xml结尾的接口(xml已废弃),测试环境静态信息不需要添加ip白名单,动态接口调用需要将自己的机器ip添加到艺龙ip白名单中,ip白名单10分钟内生效。

    正式环境无论静态信息还是动态接口都需要添加ip白名单,正式环境静态信息ip白名单添加后需要等待下一个整点的1分生效,动态接口10分钟内生效。

    IP白名单添加方式查看常见问题,看不懂时联系艺龙商务。

  4. 务必对HTTPS请求请启用gzip压缩,可在header中增加请求头来开启,req.Headers.Add("Accept-Encoding", "gzip"),可以显著节省IO时间和带宽成本,平均压缩比在10以上;已开启制验证,未开启接口将会返回失败。注意判断响应头中"content-encoding""gzip"时,再将响应正文以gzip模式进行解压缩,小于1kb的响应体不会被压缩。

              

 

公共请求参数

名称类型说明
userString账户名,商务提供
methodString访问的方法名
timestampStringUnix时间戳,基于东八区的时间(是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒)
formatString目前为json
dataString业务参数,发送时使用的url编码,参考data参数,如下接口入参
signatureString数据签名,签名是为了解决请求的唯一性、时效性。

签名方法:md5(timestamp + md5(data + appkey) + secretKey) 。

注意要小写,加号指拼接字符串操作。

详见下面的注意事项。

data参数

节点名称类型可为空说明
Version请求对应API的版本            DecimalN

Version是为了保证与分销商对接的兼容性,越高的版本输出的属性越多

,分销商保持使用一个版本即可。版本号:推荐1.65以上,可在变更历史看最新的           

Local语言EnumN仅可选:en_US,zh_CN            
Request请求参数ElementN每个接口不同的请求对象,详细见各接口文档

 

响应参数

节点名称类型可为空说明
Code结果代码StringN0表示请求成功返回;非0表示存在业务异常。            
业务异常详见错误码
Result结果数据ObjectY不同的请求返回的不同结果。
Guid链路标识StringY本次请求的唯一链路标识,建议存储以方便提供唯一标识查询问题


调用示例

例:为方便查看 示例中的data没有URLEncoding


https://{host}/rest?timestamp=1488767234&format=json&method=hotel.list&signature=
b1014d1208b993bbd90f2cfba7b9c3a8&user={userid}&data=
{"Version":"1.28","Local":"zh_CN",
"Request":{"ArrivalDate":"2017-3-18","DepartureDate":"2017-3-19",
"CityId":"0101","PageIndex":1,"PageSize":10,"ResultType":"1,2,4","PaymentType":"All"}}


        更多的接口调用示例可以查看每个API文档。

 

注意事项

    1. 账户名是由商务提供的,分为测试环境和正式环境两组,测试环境以Agent开头。不要使用向正式环境的url传入测试环境账号,反之亦然。

    2. 可以对HTTP请求请启用Gzip和Keep-alive,提升性能。

    3. 请求需要按照如下的签名方法:md5(timestamp + md5(data + appkey) + secretKey) 进行签名。

    4. md5其中timestamp需要和请求中的timestamp保持一致。data为请求中的data参数部分(不需要URLEncode),appkey和secretKey是由商务连同用户名一起发放的。Md5进行加密的数据是utf-8格式的。如果请求报signature错误,请用Md5测试工具校验一下

    5. md5(1489555911+md5({"Version":"1.28","Local":"zh_CN","Request{"ArrivalDate":"2017-03-16",

"DepartureDate":"2017-03-17","CityId":"0101","PageIndex":1,"PageSize":10,"ResultType":"1,2,4","PaymentType":"All"}}

+97f1f3804a9388663067f0eb04c21281)+431d6af690d323f99bd816215b30b156)

=md5(1489555911+39f6deaa247a7bfffaa53bb167c31d2a+431d6af690d323f99bd816215b30b156)

=d0ec6b9b98a0d56e30f33e5fc527cbac