国内酒店API接入 您所在的位置:网站首页 民宿的房型类别和房型名 国内酒店API接入

国内酒店API接入

2023-09-19 02:41| 来源: 网络整理| 查看: 265

文档管理信息表 主题: 京东酒店标准接口接入开发指南 文档版本: V2.0 内容: 京东国内酒店OpenApi技术接入说明文档 提交时间: 2017-08-25 修改时间: 2019-11-14 创建人: 曹进保 文档修改记录表 修改人 版本号 修改时间 修改内容 修改原因 曹进保 V1.0 2017-08-25 新建文档,编写公共协议和接口定义 曹进保 V1.1 2017-08-28 价格计划、下单、取消、查询 曹进保 V1.1 2017-09-06 静态城市、静态酒店、增量城市和酒店 曹进保 V1.3 2017-10-17 3.7 章节chenkin、chenkout修改为checkin\checkout并完善输出实例 3.11.4 住客信息numberOfAdult、numberOfchilder类型修改为int 3.7、3.9 deforeHours修改为beforeHours 3.2 增加row 响应条数 曹进保 V1.4 2017-10-26 删除 3.6全量价格API与3.8变价推送API,将实时价格API更名为价格API3.3 data 修改为对象 新增 错误编码3.4 3.5新增 bedInfo对象 3.6、3.7修改 发票类型、宾客类型 新增 物理房型面积范围、楼层范围、是否有窗、是否有无烟房、是否可无烟处理、无法安排无烟、不可吸烟 是否是钟点房 3.7 订单信息删除 支付方式 发票信息 新增 收件人、电话、邮箱 extra修改为extras 3.9 住客信息 删除 currencyCode 价格实时获取,不再采用落地方案 曹进保 V1.5 2017-11-11 3.6、3.7 新增arrivalTimeFrom、arrivalTimeEnd、修改担保规则、HH:MM修改为字符串3.7 cardInfo节点新增 持卡人银行预留电话、持卡人证件类型、 持卡人证件号码修改所有章节输入示例 附录 增加 生成数字签名 曹进保 V1.6 2017-11-20 3.6、3.7 担保规则变化 3.7 发票增加邮编、卡类型说明表 增加发票内容 、请求方式改为POST 附录 增加 币种 曹进保 V1.7 2017-12-27 删除 增量推送密钥的验证,增加黑白名单 曹进保 V1.8 2018-02-26 3.7发票节点,发票内容修改为字符串 曹进保 V1.8 2018-02-26 3.2 入参修改为单个城市 曹进保 V1.9 2018-05-25 3.6、3.7促销规则类型映射表 MaxRoomConut修改为MaxRoomCount 曹进保 V1.9 2018-06-06 3.7是否立即确认 immediately修改为 1:可立即确认 0:不可立即确认 hasNonSmokeRoom hasSmokeCleanRoom、noNonSmokeRoom、notAllowSmoking 修改为1:是 0:否 曹进保 V1.9 2018-07-03 3.7发票节点,邮编可为空 曹进保 V1.9 2018-07-03 附录 状态码表 增加 1009: 预存金额不足 曹进保 V1.9 2018-08-20 附录 促销 曹进保 V1.9 2018-11-21 新增 HTTP方法说明,新增安全校验规则 李斌 V1.9 2018-11-30 交易相关(查单返回customer和下单入参)说明和示例修改 王晓成 V2.0 2019-11-14 3.4房型信息接口、3.5房型信息增量接口 增加映射字段 曹进保 V2.0 2021-03-19 3.7下单API 住客详情3.7.3 新增 identityCard字段 李阳 V2.0 2021-11-26 3.6价格API 3.6.5 价格计划输出参数Extra对象 标记是否需要提供身份证信息

国内酒店预发环境测试地址:https://hotelm-yf.jd.com

一. 接口公共协议

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

1.1 京东侧接口

接口域名:

1. 测试环境:`https://test.jd.com` 2. 生产环境:`https://xxx.jd.com`

下述公共参数和公共返回结果规范主要是针对供应商请求京东的接口,对于京东请求供应商的接口则 不需要参照。上线前需要加入调用方IP到京东白名单,测试环境不需要。

1.1.1 公共请求参数

酒店信息API

名称 类型 说明 appId String 供应商应用id,由京东酒店提供

调用示例:

https://{host}/xxx?appId={appId} 1.1.2 公共响应参数 名称 类型 说明 code int 返回状态码 msg String 结果描述 data String 各接口具体需要返回业务数据,json格式

返回值示例:

{ "code": 200, "msg": "成功", "data": { "hotelCode": 1110, "roomCode": "001" } } 1.2 供应商侧接口

供应商接口域名:

测试环境:https://xxx.xxx.com 生产环境:https://xxx.xxx.com

下述公共参数和公共返回结果规范主要是针对京东请求供应商接口,保证通信过程中数据安全及调用 身份安全需增加安全方法校验。

1.2.1 公共请求参数 名称 类型 说明 accountId String 供应商定义,上线前需明确此字段,接入时通过申请获取 timeStamp String 时间戳 sign String 加密的串 生成方法:getMD5(参数+timestamp+secretKey(申请获取)) 参数说明: request.getQueryString(),获取url上的参数 IOUtils.toString(request.getInputStream(),"UTF-8"),数据流获取参数 request.getHeader("timeStamp"),从请求头上获取时间戳 参考 附录四 4.4节

调用示例:

Request Header { accountId : JD0309650572, sign:MD5串, timeStamp:1536129978000 }

加密规则:

1. String signText = request.getQueryString()+ IOUtils.toString(request.getInputStream(),"UTF-8") + request.getHeader("timeStamp")+ secretKey(申请获取) 2. String sign = getMD5(signText,"UTF-8"); 3. if(sign.equals(request.getHeader("sign"))) //验证通过 示例: 下单 (POST):signText = "method=hotel.occupy" + "data={下单入参JSON}" + request.getHeader("timeStamp") + secretKey; 取消单(GET):signText = "method=hotel.cancelOccupy&data={取消入参JSON}"+ request.getHeader("timeStamp") + secretKey; 1.2.2 公共响应参数 名称 类型 说明 code int 返回状态码 msg String 结果描述 data String 各接口具体需要返回业务数据,json格式

返回值示例:

{ "code": 200, "msg": "成功", "data": { } } 二. 接口列表说明

本文档主要涉及酒店静态接口与动态接口共9个接口

2.1 静态接口 接口名称 接口描述 城市信息 获取供应商的城市静态信息 酒店信息 获取供应商的酒店静态信息 酒店增量信息 供应商推送更新的酒店静态信息 房型信息API 获取酒店的房型静态信息 房型增量信息 供应商推送更新的酒店房型静态信息 2.2 动态接口 接口名称 接口描述 价格 用于获取供应商实时报价 下单 用于用户预订酒店时,使用此API去供应商处下单 订单查询 用户同步供应商订单信息 订单取消 用于取消预订时,使用此接口向供应商发起取消 2.3 调用流程

三. 接口定义 3.1 城市信息API 3.1.1 方法名称 geo.city.list 3.1.2 HTTP方法 GET 3.1.3 接口描述

供应商提供此API,通过此API获取供应商城市静态信息。

3.1.4 输入参数 3.1.5 输出参数 节点 名称 类型 是否必须 字段描述 country 国家 Array Y 关联 国家信息

国家信息

节点 名称 类型 是否必须 字段描述 countryCode 国家编码 String Y countryNameCN 中文 String N countryNameEN 英文 String N province 省份 Array Y 关联 省份信息

省份信息

节点 名称 类型 是否必须 字段描述 provinceCode 省份编码 String Y provinceNameCN 中文 String N provinceNameEN 英文 String N city 城市 Array Y 关联 城市信息

城市信息

节点 名称 类型 是否必须 字段描述 cityCode 城市编码 String Y cityNameCN 中文 String N cityNameEN 英文 String N 3.1.6 输入示例 https://{host}/rest?method=geo.city.list&data= 3.1.7 输出示例 { "code": 200, "msg": "成功", "data": [ { "countryCode": "0086", "countryNameCN": "中国", "countryNameEN": "china", "province": [ { "provinceCode": "9", "provinceNameCN": "北京市", "provinceNameEN": "Beijing District", "city": [ { "cityCode": "901", "cityNameCN": "大兴区", "cityNameEN": "Daxing District" } ] } ] } ] } 3.2 酒店信息API 3.2.1 方法名称 geo.hotel.list 3.2.2 HTTP 方法 GET 3.2.3 接口描述

供应商提供此API,通过此API获取供应商酒店静态信息(归属城市、名称、地址、坐标、电话等),京东定期调用该API从供应商处获取更新信息。

3.2.4 输入参数 节点 名称 类型 是否必须 字段描述 cityCode 城市 String Y 城市编码 row 行数 int Y 每次请求返回的条数 start 开始行 int Y 每次请求开始行数 3.2.5 输出参数

返回值中每个hotel节点对应一个酒店的静态信息,可包含多个hotel节点,根据row返回指定条数酒店信息

节点 名称 类型 是否必须 字段描述 cityCode 城市编码 String Y cityNameCN 城市名称,中文 String N 国内及港澳台必须提供中文 cityNameEN 城市名称,英文 String N hotel 酒店 Array Y 关联 酒店信息

酒店信息

节点 名称 类型 是否必须 字段描述 id 酒店ID String Y mappingType Mapping对象 int N 1:艺龙 2:携程 3:Expiedia mappingHotelId 映射ID String N hotelNameCN 酒店中文名 String Y 国内及港澳台必须提供中文 hotelNameEN 酒店英文名 String N address 酒店地址 String Y longitude 酒店经度 String Y 腾讯地图 latitude 酒店纬度 String Y 腾讯地图 tel 酒店电话 String Y fax 酒店传真 String N webSite 酒店网址 String N mappingList Mapping关系列表 Array N 关联 Mapping关系列表 说明:Mapping关系列表支持增删改增:本次返参比前一次返参新增的mapping关系删:前一次返参的Mapping关系列表,本次返参缺少的mapping关系则会解除上次的关联Mapping关系改:每次返参都存在的mapping关系

Mapping关系列表

节点 名称 类型 是否必须 字段描述 mappingType 与其他mapping关系 int Y 1:道旅 2:携程 3:Expiedia 4:艺龙 mappingHotelId 映射关系的ID String Y mappingHotelName 映射酒店中文名称 String N mappingHotelAddress 映射酒店中文地址 String N 3.2.6 输入示例 https://{host}/rest?method=geo.hotel.list&data={"cityCode":"101,102"} 3.2.7 输出示例 { "code": 200, "msg": "成功", "data": [ { "cityCode": "101", "cityNameCN": "北京市", "cityNameEN": "beijing", "hotel": [ { "id": "0086", "mappingType": 2, "mappingHotelId": "china", "hotelNameCN": "汉庭酒店", "hotelNameEN": "HTHT US", "address": "北京通州区科创五街3号汉庭酒店", "longitude": "116.5461000000", "latitude": "39.8098300000", "tel": "010-56351088", "fax": "", "webSite": "https://www.huazhu.com/Hanting", "mappingList":[ { "mappingType":1, "mappingHotelId":"12345", "mappingHotelName":"京东自营", "mappingHotelAddress":"京东大厦" } ] } ] } ] } 3.3 酒店增量信息API 3.3.1 方法名称

测试地址: https://testhotel.jd.com/apiGateway/sip/pushGeoHotelList?appId={appId}

线上地址: 京东提供

3.3.2 HTTP 方法 POST 3.3.3 接口描述

京东提供此API,通过此API获取供应商更新的酒店静态信息(归属城市、名称、地址、坐标、电话等),供应商调用该API推送酒店静态数据。

3.3.4 输入参数

返回值中每个hotel节点对应一个酒店的静态信息,可包含多个hotel节点。

节点 名称 类型 是否必须 字段描述 appId 供应商应用id String Y 由京东酒店提供 data 酒店信息 Array Y 关联 城市信息

城市信息

节点 名称 类型 是否必须 字段描述 cityCode 城市编码 String Y cityNameCN 城市名称,中文 String N 国内及港澳台必须提供中文 cityNameEN 城市名称,英文 String N hotel 酒店 Array Y 关联 酒店信息

酒店信息

节点 名称 类型 是否必须 字段描述 id 酒店ID String Y updateType 更新类型 int Y 0:修改 1:新增 2:删除 mappingType Mapping对象 int N 1:艺龙 2:携程 3:Expiedia mappingHotelId 映射ID String N hotelNameCN 酒店中文名 String N 国内及港澳台必须提供中文 hotelNameEN 酒店英文名 String N address 酒店地址 String Y longitude 酒店经度 String N 腾讯地图 latitude 酒店纬度 String N 腾讯地图 tel 酒店电话 String Y fax 酒店传真 String N webSite 酒店网址 String N mappingList Mapping关系列表 Array N 关联 Mapping关系列表说明:Mapping关系列表支持增删改增:本次返参比前一次返参新增的mapping关系删:前一次返参的Mapping关系列表,本次返参缺少的mapping关系则会解除上次的关联Mapping关系改:每次返参都存在的mapping关系

Mapping关系列表

节点 名称 类型 是否必须 字段描述 mappingType 与其他mapping关系 int Y 1:道旅 2:携程 3:Expiedia 4:艺龙 mappingHotelId 映射关系的ID String Y mappingHotelName 映射酒店中文名称 String N mappingHotelAddress 映射酒店中文地址 String N 3.3.5 输出参数 节点 名称 类型 是否必须 字段描述 result 推送结果 String Y SUCCESS: 处理成功 FAILURE: 处理失败 errorMessage 错误码节点 Object N result=FAILURE不为空

错误节点

节点 名称 类型 是否必须 字段描述 code 错误编码 int Y 见附录 状态码枚举表 desc 错误描述 String N 3.3.6 输入示例 { "appId": "2029922", "data": [ { "cityCode": "101", "cityNameCN": "北京市", "cityNameEN": "beijing", "hotel": [ { "id": "0086", "updateType": 1, "mappingType": 2, "mappingHotelId": "china", "hotelNameCN": "汉庭酒店", "hotelNameEN": "HTHT US", "address": "北京通州区科创五街3号汉庭酒店", "longitude": "116.5461000000", "latitude": "39.8098300000", "tel": "010-56351088", "fax": "", "webSite": "https://www.huazhu.com/Hanting", "mappingList":[ { "mappingType":1, "mappingHotelId":"12345", "mappingHotelName":"京东自营", "mappingHotelAddress":"京东大厦" } ] } ] } ] } 3.3.7 输出示例 { "result": "SUCCESS", "message": "成功" } 3.4 房型信息API 3.4.1 方法名称 geo.room.list 3.4.2 HTTP 方法 GET 3.4.3 接口描述

供应商提供此API,通过此API获取供应商酒店房型静态信息(名称、床型等),京东定期调用该API从供应商处获取更新信息。

3.4.4 输入参数 节点 名称 类型 是否必须 字段描述 hotelIds 酒店 String N 供应商酒店ID,可包含多个 , 隔开 3.4.5 输出参数

返回值中每个hotel节点对应一个酒店的物理房型静态信息,包含一个rooms节点,rooms节点包含一个或多个room节点,返回指定酒店的全部物理房型信息。

节点 名称 类型 是否必须 字段描述 hotel 酒店 Array Y 关联 酒店信息

酒店信息

节点 名称 类型 是否必须 字段描述 id 酒店ID String Y room 房型 Array Y 关联 房型信息

房型信息

节点 名称 类型 是否必须 字段描述 id 房型ID String Y name 房型名 String Y maxOccupancy 最大入住人数 int Y standardOccupancy 标准入住人数 Int Y wifi Wifi String N 关联 收费类型枚举表 brand 宽带 String N 关联 收费类型枚举表 smoking 是否可吸烟 String N "true" 或 "false" area 面积 String N 无需单位 floor 楼层 int N window 是否有窗 int N 0:无窗 1:有窗 2:不确定 addBed 加床 int N 0:不可加床 1:可加床 2:不确定 bedInfo 床型信息 Object 关联 床型信息 roomMapping 房型映射关系 Array N 关联 房型映射信息(预计8月30号废弃) mappingList 房型关系列表 Array N 关联 房型Mapping关系列表 说明:Mapping关系列表支持增删改增:本次返参比前一次返参新增的mapping关系删:前一次返参的Mapping关系列表,本次返参缺少的mapping关系则会解除上次的关联Mapping关系改:每次返参都存在的mapping关系

收费类型枚举表

收费类型 描述 FREE 免费 CHARGES 收费 PART_CHARGE 部分收费 PART_FREE 部分有且免费 NONE 无此服务 UNKNOWN 未知,不确定

床型信息

节点 名称 类型 是否必须 字段描述 relation 床型之间的关系 String N AND:多种床型共存 OR:多种床型可选 beds 床型关系 Array N 关联 床型关系

床型关系

节点 名称 类型 是否必须 字段描述 bedName 床型名称 String N bedCounts 床数量 int Y bedSize 床型尺寸 String N description 描述信息 String N

房型映射信息(预计8月30号废弃)

节点 名称 类型 是否必须 字段描述 supplierName 映射供应商名称 String Y CTRIP:携程 EAN:expedia hotelCode 映射供应商酒店Code String Y roomCode 映射供应商房型Code String Y

房型Mapping关系列表

节点 名称 类型 是否必须 字段描述 mappingType 与其他mapping关系 int Y 1:道旅 2:携程 3:Expiedia 4:艺龙 mappingHotelId 映射酒店ID String Y mappingRoomId 映射房型ID String Y 3.4.6 输入示例 https://{host}/rest?method=geo.room.list&data={"hotelIds":"100,200,300"} 3.4.7 输出示例 { "code": 200, "msg": "成功", "data": [ { "id": "100", "room": [ { "id": "001", "name": "标准间", "maxOccupancy": 2, "standardOccupancy": 2, "wifi": "FREE", "brand": "FREE", "smoking": "true", "area": "28平方米", "floor": 2, "window": 1, "addBed": 2, "bedInfo": { "relation": "AND", "beds": [ { "bedName": "", "bedCounts": 1, "bedSize": "1.8m", "description": "" } ] }, "roomMapping":[ { "supplierName":"CTRIP", "hotelCode":"123", "roomCode":"123" }, { "supplierName":"EAN", "hotelCode":"456", "roomCode":"456" } ], "mappingList":[ { "mappingType":1, "mappingHotelId":"12345", "mappingRoomId":"7896" } ] } ] } ] } 3.5 房型增量信息API 3.5.1 方法名称

测试地址: https://testhotel.jd.com/apiGateway/sip/pushGeoRoomList?appId={appId}

线上地址: 京东提供

3.5.2 HTTP 方法 POST 3.5.3 接口描述

京东提供此API,通过此API获供应商酒店房型静态的增量信息(名称、床型等),供应商调用该API推送更新的房型信息。

3.5.4 输入参数 节点 名称 类型 是否必须 字段描述 appId 供应商应用id String Y 由京东酒店提供 data 酒店信息 Array 关联 酒店信息

酒店信息

节点 名称 类型 是否必须 字段描述 id 酒店ID String Y room 房型 Array Y 关联 房型信息

房型信息

节点 名称 类型 是否必须 字段描述 id 房型ID String Y name 房型名 int Y updateType 更新类型 int Y 0:修改 1:新增 2:删除 maxOccupancy 最大入住人数 String Y standardOccupancy 标准入住人数 Int Y wifi Wifi String N 关联 收费类型枚举表 brand 宽带 String N 关联 收费类型枚举表 smoking 是否可吸烟 String N true/false area 面积 String N window 是否有窗 int N 0:无窗 1:有窗 2:不确定 addBed 加床 int N 0:不可加床 1:可加床 2:不确定 bedInfo 床型信息 Object 关联 床型信息 roomMapping 房型映射关系 Array N 关联 房型映射信息(预计8月30号废弃) mappingList 房型关系列表 Array N 关联 房型Mapping关系列表 说明:Mapping关系列表支持增删改增:本次返参比前一次返参新增的mapping关系删:前一次返参的Mapping关系列表,本次返参缺少的mapping关系则会解除上次的关联Mapping关系改:每次返参都存在的mapping关系

收费类型枚举表

收费类型 描述 FREE 免费 CHARGES 收费 PART_CHARGE 部分收费 PART_FREE 部分有且免费 NONE 无此服务 UNKNOWN 未知,不确定

床型信息

节点 名称 类型 是否必须 字段描述 relation 床型之间的关系 String N AND:多种床型共存 OR:多种床型可选 beds Array N 关联 床型关系

床型关系

节点 名称 类型 是否必须 字段描述 bedName 床型名称 String N bedCounts 床数量 int Y bedSize 床型尺寸 String N description 描述信息 String N

房型映射信息(预计8月30号废弃)

节点 名称 类型 是否必须 字段描述 supplierName 映射供应商名称 String Y CTRIP:携程 EAN:expedia hotelCode 映射供应商酒店Code String Y roomCode 映射供应商房型Code String Y

房型Mapping关系列表

节点 名称 类型 是否必须 字段描述 mappingType 与其他mapping关系 int Y 1:道旅 2:携程 3:Expiedia 4:艺龙 mappingHotelId 映射酒店ID String Y mappingRoomId 映射房型ID String Y 3.5.5 输出参数 节点 名称 类型 是否必须 字段描述 result 推送结果 String Y SUCCESS:处理成功 FAILURE:处理失败 errorMessage 错误码节点 Object N result=FAILURE 不为空

错误节点

节点 名称 类型 是否必须 字段描述 code 错误编码 int Y 见附录 状态码枚举表 desc 错误描述 String N 3.5.6 输入示例 { "appId":"2029922", "data":[ { "id":"100", "room":[ { "id":"001", "name":"标准间", "maxOccupancy":2, "standardOccupancy":2, "wifi":"FREE", "brand":"FREE", "smoking":"true", "area":"28平方米", "floor":2, "window":1, "addBed":2, "bedInfo":{ "relation":"AND", "beds":[ { "bedName":"", "bedCounts":1, "bedSize":"1.8m", "description":"" } ] }, "roomMapping":[ { "supplierName":"CTRIP", "hotelCode":"123", "roomCode":"123" }, { "supplierName":"EAN", "hotelCode":"456", "roomCode":"456" } ], "mappingList":[ { "mappingType":1, "mappingHotelId":"12345", "mappingRoomId":"7896" } ] } ] } ] } 3.5.7 输出示例 { "result": "SUCCESS", "message": "成功" } 3.6 价格API 3.6.1 方法名称 hotel.rp 3.6.2 HTTP 方法 GET 3.6.3 接口描述

京东通过此API来获取价格计划信息,信息包含房间基本属性、房价、房态、房量等信息。进入预订页和订单提交页时,请求价格校验需提供实时价格。

1.返回值中的hotelId必须与请求值中的hotelId一致,否则价格计划将被过滤。 2.返回值中用"|"分隔的内容必须满足请求中入住间夜数,否则价格计划将被过滤。

调用API的不同场景的模式:

1.列表页、详情页 报价数据 2.特定房型并进入预定页和提交页进行价格校验

3.6.4 输入参数 节点 名称 类型 是否必须 字段描述 hotelIds 酒店ID String Y 酒店ID列表 格式为:hotelId1,hotelId2,…,hotelIdN 每个hotelId是供应商酒店唯一标识,对应酒店静态信息API中的id,支持多个hotelId同时请求,以","分隔,最多20个 checkin 入住时间 Date Y 格式:YYYY-MM-DD,如:2017-10-18 checkout 离店时间 Date Y 格式:YYYY-MM-DD,如:2017-10-18 ratePlanId 价格计划ID String Y 预定页 roomCounts 房间数 int Y 默认值:1 customerInfo 住客信息 Array N 关联 住客信息 当请求多间房时,需要分别设置每个房间的成人数、儿童数、儿童年龄 channel 报价售卖渠道 String N 多个以’|’分隔,不传默认所有 1:PC2:APP 3:商旅 4:平台 5:钟点房

住客信息

节点 名称 类型 是否必须 字段描述 seq 房间序号 int N 住客房间序号 numberOfAdults 成人数 int N 成人数 numberOfchildren 儿童数 int N 儿童数 childrenAges 儿童年龄 String N 可包含多个儿童,用"|"分隔 例如:如"1|12",含义是两个儿童,一名1岁,一名12岁 3.6.5 输出参数 节点 名称 类型 是否必须 字段描述 hotelId 酒店编号 String Y 与入参中的hotelIds中的hotelId对应 hotelCityCode 酒店城市编码 String Y 酒店所属城市 hotelName 酒店名称 String Y hotelAddress 酒店地址 String Y hotelTel 酒店电话 String N checkin 开始时间 Date Y 格式:YYYY-MM-DD,如:2017-10-18 checkout 结束时间 Date Y 格式:YYYY-MM-DD,如:2017-10-18 currencyCode 币种 String N 币种 timeZone 时区 String N 默认:GMT+8 ratePlans 价格计划 Array N 关联 价格计划

价格计划

节点 名称 类型 是否必须 字段描述 id 价格计划编码 String Y name 价格计划名称 String Y payType 支付方式 int Y 0:预付 1:现付 isHourRoom 是否是钟点房 int N 1:是 0:否 channels 报价售卖渠道 String N 多个以’|’分隔。空值表示不限制 memberLevel 会员级别 String N 多个以’|’分隔。空值表示不限制。见会员级别(待提供) ratePlanType 报价类型 int Y 0:底价1:售价 receiptType 发票类型 int Y 0:京东提供 1:酒店提供 2:供应商提供 currencyCode 币种 String N 币种 averagePrices 每间每晚房价(均价) String Y 入住多晚时,每晚价格以“|”分隔,数量与fromDate/toDate相对应。 价格=房费+税费 例如1:fromDate:2017-10-21 toDate:2017-10-24 若请求两间房时,2017-10-21的房间一价格为100,房间二价格为200,则当晚的每间每晚房价为150;2017-10-22的房间一价格为100,房间二价格为100,则当晚的每间每晚房价为100;2017-10-23的房间一价格为100,房间二价格为300,则当晚的每间每晚房价为200;则averagePrices的值为“150|100|200”。 若需要10日报价,但只能提供7日报价,其余报价用0补齐 averageRoomRates 每间每晚房费 String Y 入住多晚时,以“|”分隔,数量与fromDate/toDate对应。若需要10日报价,但只能提供7日报价,其余报价用0补齐 averageTaxAndFee 每间每晚税费 String Y 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。 salesGuideType 销售指导价类型 int N 0:售价=销售指导价 1:售价=销售指导价 salesGuidePrice 销售指导价 String N 销售指导价 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应 salesGuideRoomRates 销售指导房价 String N 销售指导价 - 房价 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应 salesGuideTaxAndFee 销售指导税费 String N 销售指导价 - 税费 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应 roomStatus 每晚房态 String Y Available:可预订Disable:不可预订 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。例如:Available|Disable|Available, 第一天与第三天可以预订,第二天不可预订 roomLimits 每晚房量 String Y 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。 例如:2|1|2, 第一天与第三天可订房量为2间,第二天可订房量为1间。 reservedRoomLimits 每晚保留房数量 String Y 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。例如:2|1|2,第一天与第三天保留房数量为2间,第二天保留房数量为1间 immediately 立即确认 int Y 1:可立即确认 0:不可立即确认 customerType 宾客类型 int Y 0:所有宾客 1:中国大陆宾客 2:港澳宾客 3:台湾宾客 4:中国宾客 5:国外宾客 maxOccupancy 最大可入住人数 int Y 默认值:2 freeChildrenCounts 可免费入住儿童数 int N areaRange 物理房型面积范围 String N 格式:数值1[-数值2] 数值2>数值1 floorRange 楼层范围 String N 格式:数值1[-数值2] 数值2>数值1 hasWindow 是否有窗 int N 0:无窗 1:部分有窗 2:有窗 3:不确定 hasNonSmokeRoom 是否有无烟房 int N 1:是 0:否 hasSmokeCleanRoom 是否可无烟处理 int N 1:是 0:否 noNonSmokeRoom 无法安排无烟 int N 1:是 0:否 notAllowSmoking 不可吸烟 int N 1:是 0:否 area 房型面积 String N 物理房型面积 无需单位 wifi Wifi String Y 关联 收费类型枚举表 broadband 宽带类型 String Y 关联 收费类型枚举表 checkinTime 办理入住时间 String N 格式: HH:MM checkoutTime 办理退房时间 String N 格式: HH:MM arrivalTimeFrom 起始时间 String N 到店时间范围 格式: YYYY-MM-DD hh:mm:ss arrivalTimeEnd 截止时间 String N 到店时间范围 格式: YYYY-MM-DD hh:mm:ss roomType 物理房型信息 Object N 关联 物理房型 bedInfo 床型信息 Object Y 关联 床型信息 mealInfo 餐食信息 Object Y 关联 餐食信息 guaranteeRules 担保规则 Object N 关联 担保规则 此担保规则用于现付 refund 取消规则 Object Y 关联 取消规则 1.若未包含取消规则属性,则默认为该价格计划一旦预订则不可取消。2.NonRefundableRangs的优先级高于CancellationPolicyRules hoursRooms 钟点房 Object N 关联 钟点房 channel为5时 surcharges 附加费用 Array N 关联 附加费用 信息需要展示在用户的预订提示中 remarks 备注信息 Array N 关联 备注信息 备注信息中的内容会展示在用户的预订提示中,收费项目优先展示 optionRules 可选服务 Array N 关联 可选服务 可选服务一般为酒店提供的附加服务,用户可以选择消费,内容会展示在用户的预订提示中 promotionRules 促销规则 Array N 关联 促销规则 extras 额外信息 Array N 关联 额外信息 预订时必须的且未在接口中提供定义的字段,可保存在extra中

收费类型枚举表

收费类型 描述 FREE 免费 CHARGES 收费 PART_CHARGE 部分收费 PART_FREE 部分有且免费 NONE 无此服务 UNKNOWN 未知,不确定

物理房型

节点 名称 类型 是否必须 字段描述 roomCode 房型编码 String N 供应商房型编码 roomName 房型名称 String N 供应商房型名称 supplierId 供应商编号 String N 京东提供编码

床型信息

节点 名称 类型 是否必须 字段描述 relation 床型之间的关系 String N AND:多种床型共存 OR:多种床型可选 beds Array N 关联 床型关系

床型关系

节点 名称 类型 是否必须 字段描述 seq 床型序号 int Y bedCode 床型编码 String Y 关联 床型编码枚举表 counts 床数量 int Y counts=99时,页面展示时只取的description的内容 counts=0时,页面不展示床数量 bedSize 床型尺寸 String N description 描述信息 String Y

床型编码枚举表

床型编码 描述 SINGLE 单床 TWIN 双床 DOUBLE 双人床 QUEEN 大床 KING 特大床 BABYBED 婴儿床 ROUNDBED 圆床 WATERBED 水床 SOFABED 沙发床 SPLICINGBED 拼接床 FOLDINGBED 折叠床 DORMIROTYDEDS 床位 TATAMI 榻榻米床位 FULL 大/单/双 OTHER 其他 当类型为其他时,页面展示desription中的内容 UNKNOWN 不确定

餐食信息

节点 属性 名称 类型 是否必须 字段描述 breakfast counts 早餐 String Y 每日用餐人数 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。“2|0|1”,第一天双早,第二天不含早,第三天单早 description 描述信息 String N lunch counts 午餐 String Y 每日用餐人数 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。“2|0|1”,第一天双早,第二天不含早,第三天单早。取值范围为counts>=0且counts=0且counts数值1 floorRange 楼层范围 String N 格式:数值1[-数值2] 数值2>数值1 hasWindow 是否有窗 int N 0:无窗 1:部分有窗 2:有窗 3:不确定 hasNonSmokeRoom 是否有无烟房 int N 1:是 0:否 hasSmokeCleanRoom 是否可无烟处理 int N 1:是 0:否 noNonSmokeRoom 无法安排无烟 int N 1:是 0:否 notAllowSmoking 不可吸烟 int N 1:是 0:否 area 房型面积 String N 物理房型面积 无需单位 wifi Wifi String Y 关联 收费类型枚举表 broadband 宽带类型 String Y 关联 收费类型枚举表 checkinTime 办理入住时间 String N 格式: HH:MM checkoutTime 办理退房时间 String N 格式: HH:MM arrivalTimeFrom 起始时间 String N 到店时间范围 格式: YYYY-MM-DD hh:mm:ss arrivalTimeEnd 截止时间 String N 到店时间范围 格式: YYYY-MM-DD hh:mm:ss roomType 物理房型信息 Object N 关联 物理房型 bedInfo 床型信息 Object Y 关联 床型信息 mealInfo 餐食信息 Object Y 关联 餐食信息 guaranteeRules 担保规则 Object N 关联 担保规则 此担保规则用于现付 refund 取消规则 Object Y 关联 取消规则 1.若未包含取消规则属性,则默认为该价格计划一旦预订则不可取消。2.NonRefundableRangs的优先级高于CancellationPolicyRules hoursRooms 钟点房 Object N 关联 钟点房 channel为5时 surcharges 附加费用 Array N 关联 附加费用 信息需要展示在用户的预订提示中 remarks 备注信息 Array N 关联 备注信息 备注信息中的内容会展示在用户的预订提示中,收费项目优先展示 optionRules 可选服务 Array N 关联 可选服务 可选服务一般为酒店提供的附加服务,用户可以选择消费,内容会展示在用户的预订提示中 promotionRules 促销规则 Array N 关联 促销规则 extras 额外信息 Array N 关联 额外信息 预订时必须的且未在接口中提供定义的字段,可保存在extra中

收费类型枚举表

收费类型 描述 FREE 免费 CHARGES 收费 PART_CHARGE 部分收费 PART_FREE 部分有且免费 NONE 无此服务 UNKNOWN 未知,不确定

物理房型

节点 名称 类型 是否必须 字段描述 roomCode 房型编码 String N 供应商房型编码 roomName 房型名称 String N 供应商房型名称 supplierId 供应商编号 String N 京东提供编码

床型信息

节点 名称 类型 是否必须 字段描述 relation 床型之间的关系 String N AND:多种床型共存 OR:多种床型可选 beds Array N 关联 床型关系

床型关系

节点 名称 类型 是否必须 字段描述 seq 床型序号 int Y bedCode 床型编码 String Y 关联 床型编码枚举表 counts 床数量 int Y counts=99时,页面展示时只取的description的内容 counts=0时,页面不展示床数量 bedSize 床型尺寸 String N description 描述信息 String Y

床型编码枚举表

床型编码 描述 SINGLE 单床 TWIN 双床 DOUBLE 双人床 QUEEN 大床 KING 特大床 BABYBED 婴儿床 ROUNDBED 圆床 WATERBED 水床 SOFABED 沙发床 SPLICINGBED 拼接床 FOLDINGBED 折叠床 DORMIROTYDEDS 床位 TATAMI 榻榻米床位 FULL 大/单/双 OTHER 其他 当类型为其他时,页面展示desription中的内容 UNKNOWN 不确定

餐食信息

节点 属性 名称 类型 是否必须 字段描述 breakfast counts 早餐 String Y 每日用餐人数 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。“2|0|1”,第一天双早,第二天不含早,第三天单早 description 描述信息 String N lunch counts 午餐 String Y 每日用餐人数 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。“2|0|1”,第一天双早,第二天不含早,第三天单早。取值范围为counts>=0且counts=0且counts>> 4 & 0xf]; //取字节中高4位的数字转换, >>>为逻辑右移,将符号位一起右移 str[k++] = hexDigits[byte0 & 0xf]; //取字节中低 4 位的数字转换 } s = new String(str); //换后的结果转换为字符串 } catch (Exception e) { e.printStackTrace(); } return s; } 4.5 AES解密方法 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; import java.util.Base64.Decoder; /** * AES解密 * * @param content 加密参数 * @return 输出原值 */ public class AesUtil { private static final String IV_STRING = "A-16-Byte-String"; private static final String charset = "UTF-8"; private static final String privateKey="找京东索取"; public static String decryptString(String content) { try { Decoder decoder = Base64.getDecoder(); byte[] encryptedBytes = decoder.decode(content); byte[] keyBytes = key.getBytes(CHARSET); SecretKeySpec secretKey = new SecretKeySpec(keyBytes, "AES"); byte[] initParam = IV_STRING.getBytes(CHARSET); IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam); Cipher cipher = Cipher.getInstance("AES/CFB/NoPadding"); cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); return new String(decryptedBytes, CHARSET); } catch (Exception e) { log.error("AesUtil,decryptString", e); } return null; } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有