Appearance
奈斯酒店分销API
- 接入流程 分销商通过API接入分销平台-酒店分销服务时,先进行联调测试,联调测试结束获取正式账号后。
- 请求说明 1、分销平台API接口为基于HTTP协议,请求的编码方式为UTF-8编码, 正式环境请求域名为:
http://znapi.xiaodianjia.cn/distributionApi(正式环境)。
测试环境请求域名为:https://xnapi.xiaodianjia.cn/distributionApi (测试环境)。
在接入之前,需将信息提供给:技术支持
| 类型 | 信息 |
|---|---|
| 公司全称 | 必填 |
| 联系人姓名 | 必填 |
| 联系人手机号 | 必填 |
| 联系人邮箱 | 必填 |
| 回调地址(测试环境) | 非必填(后续规划) |
| 回调地址(正式环境) | 非必填(后续规划) |
| 白名单(正式环境) | 必填 |
2、每个请求都需要指定公共请求参数和业务请求参数。公共请求参数为每个向平台发起的请求都需包含的参数,业务请求参数与特定接口相关。
- 公共请求参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Version | 是 | string | 分销平台API版本号,目前版本号为1.0 |
| PartnerId | 是 | string | 平台分配给分销商的分销业务ID |
| Sign | 是 | string | 用于验证此次请求合法性的签名(签名方法见下文) |
| TimeStamp | 是 | string | 10位时间戳。若请求发起时间与平台服务端接受请求的时间相差超过10分钟,平台将直接拒绝本次请求 |
| RandomNum | 是 | string | 随机正整数。6位,与timestamp联合使用以防止重放攻击 |
- 业务请求参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Data | 是 | JSON Object | 取值与具体请求接口相关,格式为JSON体的字符串形式 |
- 响应说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| Code | int | 接口返回码(详见下文Code映射表) |
| Msg | string | 响应描述信息 |
| Data | JSON Object | 请求响应数据, 不同请求返回的结构不同 |
- 签名方法 接入测试时,需要联系分销平台商务同学,申请获取partnerId、accessKey。 其中partnerId填充到公共请求参数中, 通过accessKey对请求参数进行加密,作为sign。
请求体的的Header中添加(Token授权接口无需添加)
key: Authorization
value: Bearer cccc (格式:Bearer空格value)
注:cccc为获取token后返回的token值MD5加密时,所有参数名称加密前必须转大写,根据参数名称升序排列 后进行拼接,最后加上accessKey然后进行加密,生成的签名为32位(X2)并转大写 备注:(partnerId、accessKey 请联系技术同学进行获取) 1. 举例:partnerId:ZYcl8691aaFr6qprHCLyww== accessKey:c5fcea42ca7da57d3e1f9c9baead18e1 2. 当没有业务参数时,签名字段使用公共参数PartnerId、TimeStamp、RandomNum 字段生成签名字段
- 案例如下 1、PartnerId、Sign、TimeStamp、RandomNum——每个接口都要传 2、获取token时,不需要传Data,请求其他接口的时候,要传Data:
{
"PartnerId": "Fxxxxxxxxxxxxxxxx",
"Sign": "2F67C38E662D2E96B6A36AF28F000515",
"TimeStamp": "1597997893",(10位的时间戳)
"RandomNum": "172574",
"Data": {
"HotelId": 123456,
"ArrivalDate": "2020-08-25",
"DepartureDate": "2020-08-26"
}
}待签名参数字符串拼接规则(&符号连接参数):
accessKey的value值&DATA\={}&PARTNERID\=xxx&RANDOMNUM\=xxx&TIMESTAMP\=xxx 1、当DATA为空时,“&DATA={}”不用拼上去 2、当DATA不为空时,“&DATA={}”需要拼上去 案例:
> c5fcea42ca7da57d3e1f9c9baead18e1**&DATA={“hotelId”:0,”arrivalDate”:”2020-08-25 01:32:47”,”departureDate”:”2020-08-25 01:32:47”}&PARTNERID=FcaDDgihi3V93m1hDQUx0g==&RANDOMNUM=172574&TIMESTAMP=**1597997893
注意事项
1、接口返回异常时,请提供请求体,返回体,以及未加密sign参数