• 文档管理信息表
主题: 京东酒店标准接口接入开发指南
文档版本: 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": {
     "hotelId": 1110,
     "roomCode": "001"
  }
}

1.2 供应商侧接口

供应商接口域名:

  1. 测试环境:https://xxx.xxx.com
  2. 生产环境: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
hotelId 映射供应商酒店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",
                            "hotelId":"123",
                            "roomCode":"123"
                        },
                        {
                            "supplierName":"EAN",
                            "hotelId":"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
hotelId 映射供应商酒店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",
                            "hotelId":"123",
                            "roomCode":"123"
                        },
                        {
                            "supplierName":"EAN",
                            "hotelId":"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:PC
2: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:售价<销售指导价
2:售价<=销售指导价
3:售价>销售指导价
4:售价>=销售指导价
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<=99,counts=99时,只展示描述信息
description 描述信息 String N
dinner counts 晚餐 String Y 每日用餐人数 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。“2|0|1”,第一天双晚餐,第二天不含晚餐,第三天单人晚餐。取值范围为counts>=0且counts<=99,counts=99时,只展示描述信息
description 描述信息 String N

担保规则

节点 名称 类型 是否必须 字段描述
mode 担保模式 int Y 0:用户在酒店频道担保
1:用户在第三方担保
guaranteeRule 担保规则详情 Array N 关联 担保规则详情

担保规则详情

节点 名称 类型 是否必须 字段描述
arriveStartTime 到店时间担保开始的时间 String N 用户选择最晚到店时间大于该时间需要担保,HH:MM
arriveEndTime 到店时间担保结束的时间 String N 用户选择最晚到店时间小于该时间需要担保(超时担保会用到),HH:MM
count 需要担保的最小房间数 int N 用户选择房间数大于等于这个该数字需要担保(用于超量担保)
description 描述信息 String N
priority 优先级 String Y 从1开始
rule Object N 关联 担保规则详情信息

担保规则详情信息

节点 名称 类型 是否必须 字段描述
guaranteeType 担保类型 String Y 关联 担保类型枚举表
value 担保值 String N 百分比/金额
changeType 担保变更类型 int Y 0:不可变更取消
1:允许变更取消,需在入住当日24点前hours小时变更取消
2:允许变更取消,需在入住当日最晚到店时间前hours小时变更取消。
3:允许变更取消,需在date日time之前变更取消
hours 小时数 int N
time 时间 String N 格式:HH:MM
date 日期 Date N 格式:YYYY-MM-DD

担保类型枚举表

担保类型 描述
ALL_GUARANTEE 全额担保
FIRST_NIGHT_GUARANTEE 首晚担保
PERCENTAGE_GUARANTEE 按总价的百分比担保
AMOUNT_GUARANTEE 按固定金额担保

取消规则

节点 名称 类型 是否必须 字段描述
returnable 是否可以取消 String Y “true”: 可以取消,且须按如下规则取消
“false”:不可取消
timeZone 时区 String N
cancellationPolicyRules 规则详情 Array N 关联 取消规则详情
nonRefundableRanges 取消范围 Array N 关联 不可取消范围

取消规则详情

节点 名称 类型 是否必须 字段描述
type 取消规则类型 String Y 关联 取消规则枚举表
beforeHours 取消时间距离入住当日24点的小时数 int Y 例如:fromDate为2017-10-21,beforeHours=32,则时间为2017-10-20 16:00
value 罚金数值 String N 取消所需扣减的数值

不可取消范围

节点 属性 类型 是否必须 字段描述
startDate 不可取消开始日期 Date Y 格式:YYYY-MM-DD
如:2017-10-18
endDate 不可取消截止日期 Date Y 格式:YYYY-MM-DD
如:2017-10-18

取消规则枚举表

规则类型 描述
NO_PENALTY 无罚金
PERCENTAGE_PENALTY 按总价的百分比扣减
AMOUNT_PENALTY 按固定金额扣减
FIRST_NIGHT_PENALTY 扣除首晚

钟点房

节点 名称 类型 是否必须 字段描述
saleTimeBegin 最早到店时间 String N 格式:HH:MM
saleTimeEnd 最晚到店时间 String N 格式:HH:MM
saleTimeQuantity 售卖小时数 int N

附加费用

节点 名称 类型 是否必须 字段描述
payType 收费类型 int Y 0:预付
1:现付
chargeUnit 收费单元 String Y PerNight:每晚
PerRoom_PerNight:每间房每晚
PerRoom:每间房
PerAdult_PerBooking:每单每成人
PerAdult_PerNight:每成人每晚
PerChild_PerBooking:每单每儿童
PerChild_PerNight:每儿童每晚
PerPerson_PerBooking:每单每人
PerPerson_PerNight:每人每晚
price 价格 String Y
description 描述 String Y 附加费用描述

备注信息

节点名称 名称 类型 是否必须 字段描述
seq 序号 int Y
description 描述 String Y 描述信息

可选服务

节点 名称 类型 是否必须 字段描述
inRoomRate 是否包含在房价中 String Y "true"/"false"
type 服务类型 String Y AddBed:加床
AddBreakfast:加早
highSpeedNetwork:专享网络
LaundryService:洗衣服务
ShuttleService:接送机服务
chargeUnit 收费单元 String Y PerItem:每次/每件/每个
PerPerson:每人次
PerTime:每次
PerHour:每小时
PerDay:每天
price 服务价格 String Y 价格为0时,提示信息需为免费,
例如:可免费加床
description 描述 String Y 描述信息

促销规则(见附录)

节点 名称 类型 是否必须 字段描述
type 促销类型 String Y 关联 促销规则类型枚举表
promotionUnit 单位 String N DAY:提前xx天
HOUR:提前xx小时 默认:DAY
value 与code相关的值 String N 与type对应,
例如:若type为返现,则为每天返现金额10|20
promotionPrice 促销金额 String N 用于记录供应商的每日促销金额,多天以“|”分隔
description 描述 String Y 描述信息

促销规则类型枚举表

促销类型 描述
Last 关联连住优惠
例如:连住3天优惠
Last_EQ 关联限时优惠
Advence 关联提前预订优惠
MaxStay 关联最多连住天数
MinRoomCount 关联最少预订房间数
MaxRoomCount 关联最多预订房间数
CashBack 关联返现
ImmediatelyReduced 关联立减
CheckoutDelay 关联延时退房
FreeUpgrade 关联免费升级
FreeShuttle 关联免费接送机
Gift 关联大礼包
Others 关联其他
此时以描述信息为准
TonightSale 关联今夜甩卖

额外信息

节点 名称 类型 是否必须 字段描述
key 关键字 String Y 1) key: customerIdCard(下单时是否需要身份证信息)
value String Y 1) value: 0(不需要身份证);1(每个入住人都需要身份证)

3.6.6 输入示例

  https://{host}/rest?method=hotel.rp&data={"hotelIds":"100,200","checkin":"2017-09-01","checkout":"2017-09-06","channels":"1|2|3|4|5","ratePlanId":"JDXXXXXX","roomCounts":"1"}

3.6.7 输出示例

{
    "code": 200,
    "msg": "成功",
    "data": [
        {
            "hotelId": "100",
            "hotelCityCode": "99",
            "hotelName": "希尔顿",
            "hotelAddress": "北京通州区经济开发区",
            "hotelTel": "",
            "checkin": "2017-09-01",
            "checkout": "2017-09-05",
            "timeZone": "GMT+8",
            "currencyCode": "CNY",
            "ratePlans": [
                {
                    "id": "19291",
                    "name": "希尔顿豪华(含早)",
                    "ratePlanType": 1,
                    "isHourRoom": 1,
                    "channels": "1|2|3|4|5",
                    "memberLevel": "1|2",
                    "receiptType": 0,
                    "payType": 0,
                    "averagePrices": "100|120|113|115|111",
                    "averageRoomRates": "99|100|110|110|100",
                    "averageTaxAndFee": "1|20|3|5|11",
                    "roomStatus": "Available|Disable|Available|Available|Available",
                    "roomLimits": "1|2|3|2|2",
                    "reservedRoomLimits": "2|3|4|4|5",
                    "immediately": 0,
                    "customerType": 0,
                    "broadband": "FREE",
                    "wifi": "FREE",
                    "maxOccupancy": 2,
                    "freeChildrenCounts": 0,
                    "areaRange": "30.3-40",
                    "floorRange": "2-5",
                    "hasWindow": 0,
                    "hasNonSmokeRoom": 0,
                    "hasSmokeCleanRoom": 0,
                    "noNonSmokeRoom": 1,
                    "notAllowSmoking": 1,
                    "area": "20",
                    "arrivalTimeFrom": "2017-10-01 14:00:00",
                    "arrivalTimeEnd":"2017-10-01 16:00:00",
                    "checkinTime": "14:00",
                    "checkoutTime": "15:00",
                    "salesGuideType": 0,
                    "salesGuidePrice": "150",
                    "salesGuideRoomRates": "150|160|160|160|160",
                    "salesGuideTaxAndFee": "0|0|0|0|0",
                    "roomType": {
                        "roomCode": "110",
                        "roomName": "大床房",
                        "supplierId": "JD0309650572"
                    },
                    "guaranteeRules": {
                        "mode": 0,
                        "guaranteeRule": [
                            {
                                "priority": 1,
                                "arriveStartTime": "",
                                "arriveEndTime": "",
                                "count":2,
                                "rule":
                                    {
                                        "changeType": 1,
                                        "value": "",
                                        "guaranteeType": "ALL_GUARANTEE",
                                        "date": "",
                                        "time": "",
                                        "hours": "25"
                                    },
                                "description": ""
                            }
                        ]
                    },
                    "bedInfo": {
                        "relation": "OR",
                        "beds": [
                            {
                                "seq": 1,
                                "bedCode": "SINGLE",
                                "counts": 1,
                                "bedSize": "1.5*2.0",
                                "description": "1.5*2.0大床"
                            }
                        ]
                    },
                    "mealInfo": {
                        "breakfast": {
                            "counts": "0|0|0|0|0",
                            "description": "含早"
                        },
                        "lunch": {
                            "counts": "0|0|0|0|0",
                            "description": "午餐"
                        },
                        "dinner": {
                            "counts": "0|0|0|0|0",
                            "description": ""
                        }
                    },
                    "refund": {
                        "returnable": "true",
                        "timeZone": "GMT+8",
                        "cancellationPolicyRules": [
                            {
                                "beforeHours": 32,
                                "type": "AMOUNT_PENALTY",
                                "value": "100"
                            }
                        ],
                        "nonRefundableRangs": [
                            {
                                "startDate": "2017-10-18",
                                "endDate": "2017-10-18"
                            }
                        ]
                    },
                    "surcharges": [
                        {
                            "payType": 1,
                            "chargeUnit": "PerNight",
                            "price": "22",
                            "description": "附加信息描述"
                        }
                    ],
                    "remarks": [
                        {
                            "seq": 1,
                            "description": "备注信息描述"
                        }
                    ],
                    "optionRules": [
                        {
                            "type": "AddBed",
                            "inRoomRate": "true",
                            "price": "99",
                            "chargeUnit": "PerItem",
                            "description": "可选服务描述"
                        }
                    ],
                    "promotionRules": [
                        {
                            "type": "MaxStay",
                            "value": "0|0|0|0|0",
                            "promotionUnit": "ImmediatelyReduced",
                            "promotionPrice": "10|10",
                            "description": "促销信息描述"
                        }
                    ],
                    "extras": [
                        {
                            "key": "customerIdCard",
                            "value": "1"
                        }
                    ],
                    "hoursRooms": {
                        "saleTimeBegin": "17:00",
                        "saleTimeEnd": "20:00",
                        "saleTimeQuantity": 5
                    }
                }
            ]
        }
    ]
}

3.7下单API

3.7.1方法名称

hotel.occupy

3.7.2 HTTP 方法

POST </br>
Content-type:application/x-www-form-urlencoded; charset=UTF-8

3.7.3 接口描述

用户支付成功后,使用下单接口去供应商侧下单。接口通过POST方式请求。 重单, 请注意此处重单判断基于是否有符合条件的有效订单,严格判断请销售端确保只生成一个订单。

3.7.4 输入参数

节点 名称 类型 是否必须 字段描述
data 下单对象 Object Y 下单对象 格式:data={下单入参JSON},详见示例
节点 名称 类型 是否必须 字段描述
supplierHotelId 酒店id String Y 供应商酒店ID
checkin 入住日期 Date Y 格式:YYYY-MM-DD
checkout 离店日期 Date Y 格式:YYYY-MM-DD
arriveTime 预计到达时间 String Y 格式:HH:MM
currencyCode 币种 String N
specialRemark 住客偏好 String Y 1:无要求
2:尽量安排大床
3:尽量安排双床
4:尽量高层
5:尽量安排安静房间
6:尽量安排无烟房
7:尽量安排相邻房间(订多间房时)多个用,连接
roomCounts 房间数 int Y
totalPrice 总房价 String Y
instantConfirm 是否立即确认 int Y 1:可立即确认
0:不可立即确认
customerInfo 住客信息 Array Y 关联 住客信息
当请求多间房时,需要分别设置每个房间的成人数、儿童数、儿童年龄
cardInfo 信用卡信息 Object N 可用于担保现付、VCC结算时使用
orderInfo 订单信息 Object Y 关联 订单信息
InvoiceInfo 发票信息 Object N 关联 发票信息
extras 额外信息 Array N 关联 额外信息
ratePlans 价格计划 Array Y 关联 价格计划

住客信息

节点 名称 类型 是否必须 字段描述
seq 房间序号 int N
numberOfAdults 成人数 int N
numberOfchildren 儿童数 int N
childrenAges 儿童年龄 String N 可包含多个儿童,用“|”分隔。
例如:如“1|12”,含义是两个儿童,一名1岁,一名12岁
customer 住客详情 Array Y 每个房间至少包含一个住客姓名

住客详情

节点 名称 类型 是否必须 字段描述
firstName 住客名 String Y
lastName 住客姓 String Y
gender 性别 String N 女:"female"
男:"male"
nationality 国籍 String N
identityCard 身份证 String N 解密方法 (见附录4.5)

信用卡信息

节点 名称 类型 是否必须 字段描述
name 持卡人姓名 String N
firstName 持卡人名 String N
lastName 持卡人姓 String N
phone 预留电话 String N 持卡人银行预留电话
certificateType 证件类型 Int N 持卡人证件类型
0:身份证
1:护照
2:其他
certificateNumber 证件号码 String N
cardNumber 信用卡号 String N
year 有效期年 String N
month 有效期月 String N
safetyCode 安全码 String N
type 卡类型 String N 关联 卡类型说明表

卡类型说明表

TYPE 名称 说明
UnionPay 银联卡 包含如下任意一种既表示支持银联:
牡丹卡(Peony)、
金穗卡(Kins)、
长城卡(Greatwall)、
龙卡(Long)、
太平洋卡(Pacific)、
东方卡(Orient)
VISA VISA
AMEX 运通American Express
DinersClub 大来Diners Club
JCB JCB
BCCard BC Card
Discover Discover
CartaSi Carta Si
CarteBleue Carte Bleue
VisaElectron Visa Electron
Maestro Maestro
CITIBANK 花旗银行
ABC 农业银行
BOD 大连银行
NYRCB 鄞州银行
BOB 北京银行
BRCB 北京农商银行
BOC 中国银行
BANKOFJINZHOU 锦州银行
BANKOLANGZHOU 兰州银行
BANKQH 青海银行
CCB 中国建设银行
BANKOFCHENGDE 承德银行
CDRCB 成都农村商业银行
CEB 光大银行
CIB 兴业银行
ChinaCITICBank 中信银行
CMB 招商银行
CMBC 民生银行
BOCOM 交通银行
BANKOFCHONGQING 重庆银行
CHONGQINGRURALCOMMERCLALBANK 重庆农村商业银行
BANKOFCHANGSHA 长沙银行
CSRCBANK 常熟农村商业银行
CZCB 浙江稠州商业银行
DONGYINGBANK 东营银行
FUDIANBANK 富滇银行
FUJIANRURALCREDITUNION 福建省农村信用社
CHINAGUANGFABANK 广发银行
GUANGZHOURURALCOMMERCIALBANK 广州农村商业银行
BANKOFGUANGZHOU 广州银行
BANKOFGANZHOU 赣州银行
BANKOFHEBEI 河北银行
BEA 东亚银行
HUNANRURALCREDITUNION 湖南省农村信用社联合社
HARBINBANK 哈尔滨银行
HUISHANGBANK 徽商银行
HUXIABANK 华夏银行
HANGZHOUBANK 杭州银行
ICBC 工商银行
BANKOFJIUJIANG 九江银行
BANKOFJINHUA 金华银行
JIAGSUPROVINCERURALCREDITUNION 江苏省农村信用社联合社
BANKOFJIANGSU 江苏银行
JIANGYINRURALCOMMERCIALBANK 江阴农村商业银行
LONGJINGBANK 龙江银行
MINTAIBANK 浙江民泰商业银行
BANKOFNINGBO 宁波银行
JIANGXIBANK 南昌银行
BANKOFNANJING 南京银行
POSTALSAVINGSBANKOFCHINA 邮政储蓄银行
BANKOFQINGDAO 青岛银行
QILUBANK 齐鲁银行
SHENZHENDEVELOPMENTBANK 深发银行
SHUNDERURALCOMMERCIALBANK 顺德农村商业银行
BANKOFSHANGHAI 上海银行
PINGANBANK 平安银行
SPDB 浦发银行
SHANGRAOBANK 上饶银行
SHANGHAIRURALCOMMERCIALBANK 上海农商银行
BANKOFTAILZHOU 台州银行
UCCB 乌鲁木齐市商业银行
BANKOFWEIFANG 潍坊银行
WEIHAICITYCOMMERCIALBANK 威海市商业银行
WUJIANGRURALCOMMERCIALBANK 吴江农商银行
WUXIRURALCOMMERCIALBANK 无锡农村商业银行
BANKOFWENZHOU 温州银行
HBC 湖北银行(宜昌市商业银行)
BANKOFNINGXIA 宁夏银行(银川市商业银行)
YRCB 山西尧都农村商业银行
ZHEJIANGTAILONGCOMMERCIALBANK 浙江泰隆商业银行

订单信息

节点 名称 类型 是否必须 字段描述
jdOrderId 订单编号 String Y 京东提供
jdOrderStatus 订单状态 String Y 京东提供
jdHotelId 京东酒店ID String Y
orderDate 下单时间 Date Y 格式:YYYY-MM-DD HH:MM:SS
contactName 联系人姓名 String Y
contactPhone 联系电话 String Y
contactEmail 联系人邮箱 String Y

发票信息

节点 名称 类型 是否必须 字段描述
invoiceType 发票类型 String Y Paper-纸质发票、
Electronic-电子发票、
Invoice-Invoice发票
titleType title类型 String Y Personally-个人、
Enterprise-企业、
Government-政府机关行政单位
title 发票Title String Y itin 纳税人识别号/统一社会信用代码
itemName 发票内容 String Y 代订房费、
代订住宿费、
旅游服务费、
会议服务费、
住宿费、
旅游费、
其他
amount 金额 String Y 与订单总额一致
address 邮寄地址 String Y invoiceType=Electronic 可为空
postal 邮编 String N invoiceType=Electronic 可为空
addressee 收件人 String Y invoiceType=Electronic 可为空
phone 收件人电话 String Y invoiceType=Electronic 可为空
email 收件人邮箱 String N invoiceType=Electronic 不可为空
isNeedRelationOrder 是否包含入住信息 int Y 0:在发票备注栏中添加酒店预订信息(酒店名称、入住日期、离店日期、房间数)
1:不添加,默认值

额外信息

节点 名称 类型 是否必须 字段描述
key 关键字 String Y
value String 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:售价<销售指导价
2:售价<=销售指导价
3:售价>销售指导价
4:售价>=销售指导价
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<=99,counts=99时,只展示描述信息
description 描述信息 String N
dinner counts 晚餐 String Y 每日用餐人数 入住多晚时,以“|”分隔,数量与fromDate/toDate相对应。“2|0|1”,第一天双晚餐,第二天不含晚餐,第三天单人晚餐。取值范围为counts>=0且counts<=99,counts=99时,只展示描述信息
description 描述信息 String N

担保规则

节点 名称 类型 是否必须 字段描述
mode 担保模式 int Y 0:用户在酒店频道担保
1:用户在第三方担保
guaranteeRule 担保规则详情 Array N 关联 担保规则详情

担保规则详情

节点 名称 类型 是否必须 字段描述
arriveStartTime 到店时间担保开始的时间 String N 用户选择最晚到店时间大于该时间需要担保,HH:MM
arriveEndTime 到店时间担保结束的时间 String N 用户选择最晚到店时间小于该时间需要担保(超时担保会用到),HH:MM
count 需要担保的最小房间数 int N 用户选择房间数大于等于这个该数字需要担保(用于超量担保)
description 描述信息 String N
priority 优先级 String Y 从1开始
rule Object N 关联 担保规则详情信息

担保规则详情信息

节点 名称 类型 是否必须 字段描述
guaranteeType 担保类型 String Y 关联 担保类型枚举表
value 担保值 String N 百分比/金额
changeType 担保变更类型 int Y 0:不可变更取消
1:允许变更取消,需在入住当日24点前hours小时变更取消
2:允许变更取消,需在入住当日最晚到店时间前hours小时变更取消。
3:允许变更取消,需在date日time之前变更取消
hours 小时数 int N
time 时间 String N 格式:HH:MM
date 日期 Date N 格式:YYYY-MM-DD

担保类型枚举表

担保类型 描述
ALL_GUARANTEE 全额担保
FIRST_NIGHT_GUARANTEE 首晚担保
PERCENTAGE_GUARANTEE 按总价的百分比担保
AMOUNT_GUARANTEE 按固定金额担保

取消规则

节点 名称 类型 是否必须 字段描述
returnable 是否可以取消 String Y “true”: 可以取消,且须按如下规则取消
“false”:不可取消
timeZone 时区 String N
cancellationPolicyRules 规则详情 Array N 关联 取消规则详情
nonRefundableRanges 取消范围 Array N 关联 不可取消范围

取消规则详情

节点 名称 类型 是否必须 字段描述
type 取消规则类型 String Y 参见 取消规则枚举表
beforeHours 取消时间距离入住当日24点的小时数 int Y 例如:fromDate为2017-10-21,beforeHours=32,则时间为2017-10-20 16:00
value 罚金数值 String N 取消所需扣减的数值

不可取消范围

节点 属性 类型 是否必须 字段描述
startDate 不可取消开始日期 Date Y 格式:YYYY-MM-DD
如:2017-10-18
endDate 不可取消截止日期 Date Y 格式:YYYY-MM-DD
如:2017-10-18

取消规则枚举表

规则类型 描述
NO_PENALTY 无罚金
PERCENTAGE_PENALTY 按总价的百分比扣减
AMOUNT_PENALTY 按固定金额扣减
FIRST_NIGHT_PENALTY 扣除首晚

钟点房

节点 名称 类型 是否必须 字段描述
saleTimeBegin 最早到店时间 String N 格式:HH:MM
saleTimeEnd 最晚到店时间 String N 格式:HH:MM
saleTimeQuantity 售卖小时数 int N

附加费用

节点 名称 类型 是否必须 字段描述
payType 收费类型 int Y 0:预付
1:现付
chargeUnit 收费单元 String Y PerNight:每晚
PerRoom_PerNight:每间房每晚
PerRoom:每间房
PerAdult_PerBooking:每单每成人
PerAdult_PerNight:每成人每晚
PerChild_PerBooking:每单每儿童
PerChild_PerNight:每儿童每晚
PerPerson_PerBooking:每单每人
PerPerson_PerNight:每人每晚
price 价格 String Y
description 描述 String Y 附加费用描述

备注信息

节点名称 名称 类型 是否必须 字段描述
seq 序号 int Y
description 描述 String Y 描述信息

可选服务

节点 名称 类型 是否必须 字段描述
inRoomRate 是否包含在房价中 String Y "true"/"false"
type 服务类型 String Y AddBed:加床
AddBreakfast:加早
highSpeedNetwork:专享网络
LaundryService:洗衣服务
ShuttleService:接送机服务
chargeUnit 收费单元 String Y PerItem:每次/每件/每个
PerPerson:每人次
PerTime:每次
PerHour:每小时
PerDay:每天
price 服务价格 String Y 价格为0时,提示信息需为免费,
例如:可免费加床
description 描述 String Y 描述信息

促销规则(见附录)

节点 名称 类型 是否必须 字段描述
type 促销类型 String Y 关联 促销规则类型映射表
promotionUnit 单位 String N DAY:提前xx天
HOUR:提前xx小时 默认:DAY
value 与code相关的值 String N 与type对应,
例如:若type为返现,则为每天返现金额10|20
promotionPrice 促销金额 String N 用于记录供应商的每日促销金额,多天以“|”分隔
description 描述 String Y 描述信息

促销规则类型映射表

促销类型 描述
Last 关联连住优惠
例如:连住3天优惠
Last_EQ 关联限时优惠
Advence 关联提前预订优惠
MaxStay 关联最多连住天数
MinRoomCount 关联最少预订房间数
MaxRoomCount 关联最多预订房间数
CashBack 关联返现
ImmediatelyReduced 关联立减
CheckoutDelay 关联延时退房
FreeUpgrade 关联免费升级
FreeShuttle 关联免费接送机
Gift 关联大礼包
Others 关联其他
此时以描述信息为准
TonightSale 关联今夜甩卖

额外信息

节点 名称 类型 是否必须 字段描述
key 关键字 String Y
value String Y

3.7.5 输出参数

节点 名称 类型 是否必须 字段描述
jdOrderId 京东订单号 String Y 京东订单ID
supplierOrderId 供应商订单号 String Y 供应商订单ID
bookingResult 预订结果 String Y SUCCESS:预订成功
FAILURE:预订失败
confirmationNumber 确认号 String N 可以作为入住凭证
errorMessage 错误节点 Object N 关联 错误节点
bookingResult=FAILURE时不为空
duplicatedOrderId 供应商已存在订单号 String N 如果错误码是重复订单,需要传此字段(供应商侧订单ID)
extras 附加信息 Array N 关联 附加信息

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int N 1:无房、
2:价格错误/变价、
3:重复订单、
4:其他 、
5:系统忙稍后重试
desc 错误描述 String N

附加信息

节点 名称 类型 是否必须 字段描述
key 关键字 String N
value String N

3.7.6 输入示例

  https://{host}/rest?method=hotel.occupy

request Body:


data={
    "supplierHotelId":"1000",
    "checkin":"2017-09-10",
    "checkout":"2017-09-12",
    "totalPrice":"600",
    "currencyCode":"CNY",
    "specialRemark":"1,2,3",
    "arriveTime":"11:30",
    "roomCounts":2,
    "instantConfirm":0,
    "ratePlans":[
        {
            "id":"19291",
            "name":"希尔顿豪华(含早)",
            "ratePlanType":1,
            "isHourRoom":1,
            "channels":"1|2|3|4|5",
            "memberLevel":"1|2",
            "receiptType":0,
            "payType":0,
            "averagePrices":"100|120|113|115|111",
            "averageRoomRates":"99|100|110|110|100",
            "averageTaxAndFee":"1|20|3|5|11",
            "roomStatus":"Available|Disable|Available|Available|Available",
            "roomLimits":"1|2|3|2|2",
            "reservedRoomLimits":"2|3|4|4|5",
            "immediately":0,
            "customerType":0,
            "broadband":"FREE",
            "wifi":"FREE",
            "maxOccupancy":2,
            "freeChildrenCounts":0,
            "areaRange":"30.3-40",
            "floorRange":"2-5",
            "hasWindow":0,
            "hasNonSmokeRoom":0,
            "hasSmokeCleanRoom":0,
            "noNonSmokeRoom":1,
            "notAllowSmoking":1,
            "area":"20",
            "arrivalTimeFrom":"2017-10-01 14:00:00",
            "arrivalTimeEnd":"2017-10-01 16:00:00",
            "checkinTime":"14:00",
            "checkoutTime":"15:00",
            "salesGuideType":0,
            "salesGuidePrice":"150",
            "salesGuideRoomRates":"150|160|160|160|160",
            "salesGuideTaxAndFee":"0|0|0|0|0",
            "roomType":{
                "roomCode":"110",
                "roomName":"大床房",
                "supplierId":"JD0309650572"
            },
            "guaranteeRules":{
                "mode":0,
                "guaranteeRule":[
                    {
                        "priority":1,
                        "arriveStartTime":"",
                        "arriveEndTime":"",
                        "count":2,
                        "rule":{
                            "changeType":1,
                            "value":"",
                            "guaranteeType":"ALL_GUARANTEE",
                            "date":"",
                            "time":"",
                            "hours":"25"
                        },
                        "description":""
                    }
                ]
            },
            "bedInfo":{
                "relation":"OR",
                "beds":[
                    {
                        "seq":1,
                        "bedCode":"SINGLE",
                        "counts":1,
                        "bedSize":"1.5*2.0",
                        "description":"1.5*2.0大床"
                    }
                ]
            },
            "mealInfo":{
                "breakfast":{
                    "counts":"0|0|0|0|0",
                    "description":"含早"
                },
                "lunch":{
                    "counts":"0|0|0|0|0",
                    "description":"午餐"
                },
                "dinner":{
                    "counts":"0|0|0|0|0",
                    "description":""
                }
            },
            "refund":{
                "returnable":"true",
                "timeZone":"GMT+8",
                "cancellationPolicyRules":[
                    {
                        "beforeHours":32,
                        "type":"AMOUNT_PENALTY",
                        "value":"100"
                    }
                ],
                "nonRefundableRangs":[
                    {
                        "startDate":"2017-10-18",
                        "endDate":"2017-10-18"
                    }
                ]
            },
            "surcharges":[
                {
                    "payType":1,
                    "chargeUnit":"PerNight",
                    "price":"22",
                    "description":"附加信息描述"
                }
            ],
            "remarks":[
                {
                    "seq":1,
                    "description":"备注信息描述"
                }
            ],
            "optionRules":[
                {
                    "type":"AddBed",
                    "inRoomRate":"true",
                    "price":"99",
                    "chargeUnit":"PerItem",
                    "description":"可选服务描述"
                }
            ],
            "promotionRules":[
                {
                    "type":"MaxStay",
                    "value":"0|0|0|0|0",
                    "promotionUnit":"ImmediatelyReduced",
                    "promotionPrice":"10|10",
                    "description":"促销信息描述"
                }
            ],
            "extras":[
                {
                    "key":"key",
                    "value":"value"
                }
            ],
            "hoursRooms":{
                "saleTimeBegin":"17:00",
                "saleTimeEnd":"20:00",
                "saleTimeQuantity":5
            }
        }
    ],
    "customerInfo":[
        {
            "seq":0,
            "numberOfAdults":4,
            "numberOfchildren":10,
            "childrenAges":"1",
            "customer":[
                {
                    "firstName":"东",
                    "lastName":"京",
                    "nationality":"中国",
                    "gender":"female",
                    "identityCard":"身份证"
                }
            ]
        }
    ],
    "cardInfo":{
        "name":"京东",
        "firstName":"东",
        "lastName":"京",
        "phone":"13800138000",
        "certificateType":0,
        "certificateNumber":"1001030303020202",
        "cardNumber":"6226656799900099",
        "year":"2020",
        "month":"10",
        "safetyCode":"KK00LL",
        "type":"VISA"
    },
    "orderInfo":{
        "jdOrderId":"9999999999",
        "jdOrderStatus":"已支付",
        "jdHotelId":"1000",
        "orderDate":"2017-09-0612: 00: 00",
        "contactName":"京东",
        "contactPhone":"400-606-5500",
        "contactEmail":"order@jd.com"
    },
    "invoiceInfo":{
        "invoiceType":"Paper",
        "titleType":"Personally",
        "title":"京东",
        "itin":"22226666",
        "itemName":"代订房费",
        "amount":"100",
        "address":"京东大厦",
        "postal":"100020",
        "addressee":"京东",
        "phone":"4006067733",
        "email":"jd@jd.com",
        "isNeedRelationOrder":1
    },
    "extras":[
        {
            "key":"xxx",
            "value":"xxxxx"
        }
    ]
}

3.7.7 输出示例

{
    "code":200,
    "msg":"成功",
    "data":{
        "jdOrderId":"9999999999",
        "supplierOrderId":"YL-99999",
        "bookingResult":"FAILURE",
        "confirmationNumber":"",
        "duplicatedOrderId":"YL-99999",
        "errorMessage":{
            "code":1,
            "desc":"无房,请重新预定"
        },
        "extra":{
            "key":"key",
            "value":"value"
        }
    }
}

3.8订单取消API

3.8.1方法名称

hotel.cancelOccupy

3.8.2 HTTP 方法

GET

3.8.3 接口描述

当客户取消预订订单时,京东将会调用这个API进行订单取消操作。

3.8.4 输入参数

节点 名称 类型 是否必须 字段描述
jdOrderId 京东订单号 String Y
supplierOrderId 供应商订单号 String Y
reason 取消原因 String N
extra 附加信息 Object N

附加信息

节点 名称 类型 是否必须 字段描述
key 关键字 String N
value String N

3.8.5 输出参数

节点 名称 类型 是否必须 字段描述
jdOrderId 京东订单号 String Y 京东订单ID
supplierOrderId 供应商订单号 String Y 供应商订单ID
cancelResult 取消结果 String Y SUCCESS:取消成功、
FAILURE:取消失败
errorMessage 错误节点 Object N 关联 错误节点
cancelResult=FAILURE时不为空
extra 附加信息 Array N

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int N 1:无此订单
2:系统忙稍后重试
3:其他
desc 错误描述 String N

附加信息

节点 名称 类型 是否必须 字段描述
key 关键字 String N
value String N

3.8.6 输入示例

https://{host}/rest?method=hotel.cancelOccupy&data=
{
    "jdOrderId": "9999999999",
    "supplierOrderId": "YL-99999",
    "reason": "取消原因",
    "extra":
        {
            "key": "cancelDebitPrice"(取消时扣款金额),
            "value": "985.0"(金额数值)
        }
}

3.8.7 输出示例

{
    "code":200,
    "msg":"成功",
    "data":{
        "jdOrderId":"9999999999",
        "supplierOrderId":"YL-99999",
        "cancelResult":"FAILURE",
        "errorMessage":{
            "code":3,
            "desc":"超过取消时间"
        },
        "extra":[
            {
                "key":"",
                "value":""
            }
        ]
    }
}

3.9订单查询API

3.9.1方法名称

hotel.queryOrder

3.9.2 HTTP方法

GET

3.9.3 接口描述

此接口供应商提供预订细节查询,包括订单状态、房间价格和房间信息等,与此订单相关的所有订单信息。需支持京东订单号或供应商订单号来查询。

3.9.4 输入参数

节点 名称 类型 是否必须 字段描述
jdOrderId 京东订单号 String Y
supplierOrderId 供应商订单号 String Y
supplierHotelId 供应商酒店ID String N
bookingDate 下单时间 Date N 格式:YYYY-MM-DD hh:mm:ss
checkin 入店时间 Date N 格式:YYYY-MM-DD
checkout 离店时间 Date N 格式:YYYY-MM-DD
contactInfo 联系人 Object N 关联 联系人信息
extra 附加信息 Object N 关联 附加信息

联系人信息

节点 名称 类型 是否必须 字段描述
firstName String N
lastName String N

附加信息

节点 名称 类型 是否必须 字段描述
key 关键字 String N
value String N

3.9.5 输出参数

节点 名称 类型 是否必须 字段描述
jdOrderId 京东订单号 String Y 京东订单ID
supplierOrderId 供应商订单号 String Y 供应商订单ID
supplierOrderStatus 订单状态 String Y 关联 订单状态枚举表
confirmationNumber 确认号 String N
supplierHotelId 供应商酒店ID String N
bookingDate 下单时间 Date N 格式:YYYY-MM-DD hh:mm:ss
checkin 入店时间 Date N 格式:YYYY-MM-DD
checkout 离店时间 Date N 格式:YYYY-MM-DD
queryResult 查询结果 String Y SUCCESS:查询成功
FAILURE:查询失败
errorMessage 错误节点 Object N 关联 错误节点
cancelResult= FAILURE时不为空
customerInfo 住客信息 Array N 关联 住客信息
contactInfo 联系人 Object N 关联 联系人信息
totalPrice 订单总价 String N
shopPayInfo 现付信息 Array N 关联 现付信息

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int N 1:无此订单
2:其他
desc 错误描述 String N

住客信息

节点 名称 类型 是否必须 字段描述
seq 房间序号 int N
numberOfAdults 成人数 int N
numberOfchildren 儿童数 int N
childrenAges 儿童年龄 String Y 可包含多个儿童,用“|”分隔。
例如:如“1|12”,含义是两个儿童,一名1岁,一名12岁
customer 住客详情 Object Y 关联 住客详情
每个房间至少包含一个住客姓名

住客详情

节点 名称 类型 是否必须 字段描述
firstName 住客名 String Y
lastName 住客姓 String Y
gender 性别 String N 女:"female"
男:"male"
nationality 国籍 String N

联系人信息

节点 名称 类型 是否必须 字段描述
firstName String N
lastName String N

现付信息

节点 名称 类型 是否必须 字段描述
seq 与customerInfo@seq相对应 int Y
actualRoomNo 入住房间号 String N
confirmationNo 确认号 String Y
confirmationStatus 订单状态 String N 关联 订单状态枚举表
actualCheckout 实际离店日期 Date Y

订单状态枚举表

订单状态 说明
CONFIRM_PENDING 待确认
CONFIRMED_SUCCESS 确认成功
CONFIRMED_FAILURE 确认失败
CANCELED 取消成功
CANCELED_PENDING 取消中
CANCELED_FAILURE 取消失败
NO_SHOW 未入住
CHECKED_IN 已入住
CHECKED_OUT 已离店
EARLY_CHECKED_OUT 提前离店

3.9.6 输入示例

https://{host}/rest?method=hotel.queryOrder&data=
{
    "jdOrderId": "9999999999",
    "supplierOrderId": "YL-99999",
    "hotelId": "1000",
    "bookingDate": "",
    "checkin": "",
    "checkout": "",
    "contactInfo": {
        "firstName": "东",
        "lastName": "京"
    },
    "extra": {
        "key": "key",
        "value": "value"
    }
}

3.9.7 输出示例

{
    "code": 200,
    "msg": "成功",
    "data": {
        "jdOrderId": "9999999999",
        "supplierOrderId": "YL-99999",
        "supplierOrderStatus": "CONFIRM_PENDING",
        "confirmationNumber": "",
        "totalPrice": "600",
        "hotelId": "1000",
        "bookingDate": "",
        "checkin": "",
        "checkout": "",
        "customerInfo": [
            {
                "seq": 0,
                "numberOfAdults": 4,
                "numberOfchildren": 10,
                "childrenAges": "1",
                "customer": {
                        "firstName": "东",
                        "lastName": "京",
                        "nationality": "中国",
                        "gender": "female"
                 }
            }
        ],
        "contactInfo": {
            "firstName": "东",
            "lastName": "京"
        },
        "shopPayInfo": [
            {
                "seq": 0,
                "actualRoomNo": "201",
                "confirmationNo": "",
                "confirmationStatus": "CONFIRM_PENDDING",
                "actualCheckout": "2017-10-01"
            }
        ],
        "queryResult": "FAILURE",
        "errorMessage": {
            "code": 3,
            "desc": "超过取消时间"
        }
    }
}

3.10酒店产品基本信息推送API

3.10.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/ratePlanStaticPush

线上地址: 京东提供

3.10.2 HTTP 方法

POST

3.10.3 接口描述

京东提供此API,通过此API获供应商酒店产品基本信息,供应商调用该API推送更新的产品基本信息。

3.10.4 输入参数

节点 名称 类型 是否必须 字段描述
appId 供应商应用id String Y 由京东酒店提供
data 酒店产品基本信息 Array Y (单次推送条数需小于等于30)
关联 产品基本信息
sessionId 调用链编号 String Y 单次调用唯一标志(可以设置为时间戳)

产品基本信息

节点 名称 类型 是否必须 字段描述
hotelId 酒店编码 string Y 酒店编码
roomTypeCode 物理房型编码 string Y 物理房型编码
roomTypeName 物理房型名称 string N 最大支持128个字符串
物理房型名称
ratePlanId 产品房型code string Y 产品房型code
ratePlanName 产品房型名称 string Y 最大支持128个字符串
产品房型名称
payType 支付方式 integer Y 默认值 0; 支付方式 0:预付;1:现付;
currencyCode 币种 String Y 币种
receiptType 发票类型 integer Y 默认值 2; 发票类型:0:京东提供;1:酒店提供;2:供应商提供
immediately 立即确认 integer Y 默认值 0; 立即确认:0:不可立即确认;1:可立即确认
customerType 宾客类型 integer Y 默认值 1; 宾客类型,1:中国大陆宾客;2:港澳宾客;3:台湾宾客;4:中国宾客;5:国外宾客
maxOccupancy 最大可入住人数 integer Y 默认值 2; 最大可入住人数
freeChildrenCounts 可免费入住儿童数 integer N 可免费入住儿童数
areaRange 物理房型面积范围 string N 物理房型面积范围
floorRange 楼层范围 string N 楼层范围
hasWindow 是否有窗 integer N 是否有窗:0:无窗;1:部分有窗;2:有窗;3:不确定
hasNonSmokeRoom 是否有无烟房 integer N 是否有无烟房1:是;0:否
hasSmokeCleanRoom 是否可无烟处理 integer N 是否可无烟处理1:是;0:否
noNonSmokeRoom 无法安排无烟 integer N 无法安排无烟1:是;0:否
notAllowSmoking 不可吸烟 integer N 不可吸烟1:是;0:否
area 房型面积 string N 房型面积
wifi WiFi string Y 默认值 UNKNOWN ;WiFi 关联 收费类型枚举表
broadband 宽带 string Y 默认值 UNKNOWN ;宽带 关联 收费类型枚举表
bedInfo 床型信息 Object Y Object 转换为JSON字符串,最大支持256个字符
关联 产品床型信息
refund 取消规则 Object Y Object 转换为JSON字符串,最大支持256个字符
关联 取消规则
1.若未包含取消规则属性,则默认为该价格计划一旦预订则不可取消。
surcharges 附加费用 Array N Array 转换为JSON字符串,最大支持512个字符
关联 附加费用
信息需要展示在用户的预订提示中
remarks 备注信息 Array N Array 转换为JSON字符串,最大支持512个字符
关联 备注信息
备注信息中的内容会展示在用户的预订提示中,收费项目优先展示
optionRules 可选服务 Array N Array 转换为JSON字符串,最大支持512个字符
关联 可选服务
可选服务一般为酒店提供的附加服务,用户可以选择消费,内容会展示在用户的预订提示中
promotionRules 促销规则 Array N Array 转换为JSON字符串,最大支持512个字符
关联 促销规则
beginBookDate 开始预订日期 string Y 开始预订日期 format = "yyyy-MM-dd"
endBookDate 结束预订日期 string Y 结束预订日期 format = "yyyy-MM-dd"
minBookHour 最小提前预订小时数 integer Y 最小提前预订小时数
maxBookHour 最大提前预订小时数 integer Y 最大提前预订小时数
minCheckInDay 最小连续入住天数 integer Y 最小连续入住天数
maxCheckInDay 最大连续入住天数 integer Y 最大连续入住天数
bookDesc 预订策略说明 string N 最大支持256个字符 预订策略说明
status 状态标识 integer Y 默认值 1; 状态标识,1:有效,0:无效
timestamp 时间戳 integer Y 时间戳-作为更新顺序及版本判断使用,需提供可判断数据更新版本数据

产品床型信息

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

床型信息

节点 名称 类型 是否必须 字段描述
seq 床型序号 integer Y 床型序号
bedCode 床型编码 string Y 床型编码 SINGLE:单人床;DOUBLE:双人床;BUNK:床位;TATAMI:榻榻米;ROUND_BED:圆床;BABY_COT:婴儿床;WATER_BED:水床;FOLDING_BED:折叠床;CONNECTED_BED:拼接床;UNKNOWN:不确定;OTHERS:其他床型
counts 床数量 integer Y 床数量 counts=99时,页面展示时只取的description的内容
bedSize 床型尺寸 string Y 床型尺寸
description 描述信息 string N 描述信息 与bedCode对应Value(OTHERS其他床型:若供应商传的description字段有值,则取供应商的description字段描述

取消规则

节点 名称 类型 是否必须 字段描述
returnable 是否可以取消 String Y “true”: 可以取消,且须按如下规则取消
“false”:不可取消
timeZone 时区 String N
cancellationPolicyRules 规则详情 Array N 关联 取消规则详情

3.10.5 输出参数

节点 名称 类型 是否必须 字段描述
result 推送结果 String Y SUCCESS:处理成功
FAILURE:处理失败
errorMessage 错误码节点 Object N 关联 错误码节点 FAILURE 不为空
data 错误信息描述 Array N 关联 错误信息描述

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int Y 见附录 状态码枚举表
desc 错误描述 String N

错误信息描述

节点 名称 类型 是否必须 字段描述
fieldType 错误类型 String Y 如必填项,条数限制,枚举值不正确,字符串长度限制,数值范围不正确,数据类型错误等
location 错误位置 String N
message 错误具体信息 String N

3.10.6 输入示例

{
  "appId": "JD0207101658",
  "sessionId": "1718333791349",
  "data": [
    {
      "area": "28平方米",
      "areaRange": "24",
      "bedInfo": {
        "beds": [
          {
            "bedCode": "SINGLE",
            "bedSize": "1.8m",
            "counts": 2,
            "description": "",
            "seq": 0
          }
        ],
        "relation": "AND"
      },
      "beginBookDate": "2024-06-15",
      "bookDesc": "bookDesc",
      "broadband": "FREE",
      "currencyCode": "CNY",
      "customerType": 1,
      "endBookDate": "2024-07-22",
      "floorRange": "2-4",
      "freeChildrenCounts": 0,
      "hasNonSmokeRoom": 0,
      "hasSmokeCleanRoom": 0,
      "hasWindow": 0,
      "hotelId": "374447",
      "immediately": 0,
      "maxBookHour": 500,
      "maxCheckInDay": 30,
      "maxOccupancy": 0,
      "minBookHour": 0,
      "minCheckInDay": 1,
      "noNonSmokeRoom": 0,
      "notAllowSmoking": 0,
      "optionRules": [
        {
          "chargeUnit": "PerItem",
          "description": "可选服务描述",
          "inRoomRate": "true",
          "price": "99",
          "type": "AddBed"
        }
      ],
      "payType": 0,
      "promotionRules": [
        {
          "description": "促销信息描述",
          "promotionPrice": "123.4",
          "promotionUnit": "ImmediatelyReduced",
          "type": "MaxStay",
          "value": "0"
        }
      ],
      "ratePlanId": "290040403_1",
      "ratePlanName": "ratePlanName",
      "receiptType": 0,
      "refund": {
        "cancellationPolicyRules": [
          {
            "beforeHours": 32,
            "type": "AMOUNT_PENALTY",
            "value": "100"
          }
        ],
        "returnable": "true",
        "timeZone": "GMT+8"
      },
      "remarks": [
        {
          "description": "备注信息描述",
          "seq": 1
        }
      ],
      "roomTypeCode": "290040403",
      "roomTypeName": "roomTypeName",
      "status": 1,
      "surcharges": [
        {
          "chargeUnit": "PerNight",
          "description": "附加信息描述",
          "payType": 1,
          "price": "22"
        }
      ],
      "timestamp": 1718334771543,
      "wifi": "FREE"
    },
    {
      "area": "28平方米",
      "areaRange": "24",
      "bedInfo": {
        "beds": [
          {
            "bedCode": "SINGLE",
            "bedSize": "1.8m",
            "counts": 2,
            "description": "",
            "seq": 0
          }
        ],
        "relation": "AND"
      },
      "beginBookDate": "2024-06-15",
      "bookDesc": "bookDesc",
      "broadband": "FREE",
      "currencyCode": "CNY",
      "customerType": 1,
      "endBookDate": "2024-07-22",
      "floorRange": "2-4",
      "freeChildrenCounts": 0,
      "hasNonSmokeRoom": 0,
      "hasSmokeCleanRoom": 0,
      "hasWindow": 0,
      "hotelId": "374447",
      "immediately": 0,
      "maxBookHour": 500,
      "maxCheckInDay": 30,
      "maxOccupancy": 0,
      "minBookHour": 0,
      "minCheckInDay": 1,
      "noNonSmokeRoom": 0,
      "notAllowSmoking": 0,
      "optionRules": [
        {
          "chargeUnit": "PerItem",
          "description": "可选服务描述",
          "inRoomRate": "true",
          "price": "99",
          "type": "AddBed"
        }
      ],
      "payType": 0,
      "promotionRules": [
        {
          "description": "促销信息描述",
          "promotionPrice": "10.0",
          "promotionUnit": "ImmediatelyReduced",
          "type": "MaxStay",
          "value": "0"
        }
      ],
      "ratePlanId": "290489942_1",
      "ratePlanName": "ratePlanName",
      "receiptType": 0,
      "refund": {
        "cancellationPolicyRules": [
          {
            "beforeHours": 32,
            "type": "AMOUNT_PENALTY",
            "value": "100"
          }
        ],
        "returnable": "true",
        "timeZone": "GMT+8"
      },
      "remarks": [
        {
          "description": "备注信息描述",
          "seq": 1
        }
      ],
      "roomTypeCode": "290489942",
      "roomTypeName": "roomTypeName",
      "status": 1,
      "surcharges": [
        {
          "chargeUnit": "PerNight",
          "description": "附加信息描述",
          "payType": 1,
          "price": "22"
        }
      ],
      "timestamp": 1718334771544,
      "wifi": "FREE"
    },
    {
      "area": "28平方米",
      "areaRange": "24",
      "bedInfo": {
        "beds": [
          {
            "bedCode": "SINGLE",
            "bedSize": "1.8m",
            "counts": 2,
            "description": "",
            "seq": 0
          }
        ],
        "relation": "AND"
      },
      "beginBookDate": "2024-06-15",
      "bookDesc": "bookDesc",
      "broadband": "FREE",
      "currencyCode": "CNY",
      "customerType": 1,
      "endBookDate": "2024-07-22",
      "floorRange": "2-4",
      "freeChildrenCounts": 0,
      "hasNonSmokeRoom": 0,
      "hasSmokeCleanRoom": 0,
      "hasWindow": 0,
      "hotelId": "374447",
      "immediately": 0,
      "maxBookHour": 500,
      "maxCheckInDay": 30,
      "maxOccupancy": 0,
      "minBookHour": 0,
      "minCheckInDay": 1,
      "noNonSmokeRoom": 0,
      "notAllowSmoking": 0,
      "optionRules": [
        {
          "chargeUnit": "PerItem",
          "description": "可选服务描述",
          "inRoomRate": "true",
          "price": "99",
          "type": "AddBed"
        }
      ],
      "payType": 0,
      "promotionRules": [
        {
          "description": "促销信息描述",
          "promotionPrice": "10.0",
          "promotionUnit": "ImmediatelyReduced",
          "type": "MaxStay",
          "value": "0"
        }
      ],
      "ratePlanId": "293538084_1",
      "ratePlanName": "ratePlanName",
      "receiptType": 0,
      "refund": {
        "cancellationPolicyRules": [
          {
            "beforeHours": 32,
            "type": "AMOUNT_PENALTY",
            "value": "100"
          }
        ],
        "returnable": "true",
        "timeZone": "GMT+8"
      },
      "remarks": [
        {
          "description": "备注信息描述",
          "seq": 1
        }
      ],
      "roomTypeCode": "293538084",
      "roomTypeName": "roomTypeName",
      "status": 1,
      "surcharges": [
        {
          "chargeUnit": "PerNight",
          "description": "附加信息描述",
          "payType": 1,
          "price": "22"
        }
      ],
      "timestamp": 1718334771545,
      "wifi": "FREE"
    },
    {
      "area": "28平方米",
      "areaRange": "24",
      "bedInfo": {
        "beds": [
          {
            "bedCode": "SINGLE",
            "bedSize": "1.8m",
            "counts": 2,
            "description": "",
            "seq": 0
          }
        ],
        "relation": "AND"
      },
      "beginBookDate": "2024-06-15",
      "bookDesc": "bookDesc",
      "broadband": "FREE",
      "currencyCode": "CNY",
      "customerType": 1,
      "endBookDate": "2024-07-22",
      "floorRange": "2-4",
      "freeChildrenCounts": 0,
      "hasNonSmokeRoom": 0,
      "hasSmokeCleanRoom": 0,
      "hasWindow": 0,
      "hotelId": "374447",
      "immediately": 0,
      "maxBookHour": 500,
      "maxCheckInDay": 30,
      "maxOccupancy": 0,
      "minBookHour": 0,
      "minCheckInDay": 1,
      "noNonSmokeRoom": 0,
      "notAllowSmoking": 0,
      "optionRules": [
        {
          "chargeUnit": "PerItem",
          "description": "可选服务描述",
          "inRoomRate": "true",
          "price": "99",
          "type": "AddBed"
        }
      ],
      "payType": 0,
      "promotionRules": [
        {
          "description": "促销信息描述",
          "promotionPrice": "10",
          "promotionUnit": "ImmediatelyReduced",
          "type": "MaxStay",
          "value": "0"
        }
      ],
      "ratePlanId": "323381959_1",
      "ratePlanName": "ratePlanName",
      "receiptType": 0,
      "refund": {
        "cancellationPolicyRules": [
          {
            "beforeHours": 32,
            "type": "AMOUNT_PENALTY",
            "value": "100"
          }
        ],
        "returnable": "true",
        "timeZone": "GMT+8"
      },
      "remarks": [
        {
          "description": "备注信息描述",
          "seq": 1
        }
      ],
      "roomTypeCode": "323381959",
      "roomTypeName": "roomTypeName",
      "status": 1,
      "surcharges": [
        {
          "chargeUnit": "PerNight",
          "description": "附加信息描述",
          "payType": 1,
          "price": "22"
        }
      ],
      "timestamp": 1718334771545,
      "wifi": "FREE"
    },
    {
      "area": "28平方米",
      "areaRange": "24",
      "bedInfo": {
        "beds": [
          {
            "bedCode": "SINGLE",
            "bedSize": "1.8m",
            "counts": 2,
            "description": "",
            "seq": 0
          }
        ],
        "relation": "AND"
      },
      "beginBookDate": "2024-06-15",
      "bookDesc": "bookDesc",
      "broadband": "FREE",
      "currencyCode": "CNY",
      "customerType": 1,
      "endBookDate": "2024-07-22",
      "floorRange": "2-4",
      "freeChildrenCounts": 0,
      "hasNonSmokeRoom": 0,
      "hasSmokeCleanRoom": 0,
      "hasWindow": 0,
      "hotelId": "374447",
      "immediately": 0,
      "maxBookHour": 500,
      "maxCheckInDay": 30,
      "maxOccupancy": 0,
      "minBookHour": 0,
      "minCheckInDay": 1,
      "noNonSmokeRoom": 0,
      "notAllowSmoking": 0,
      "optionRules": [
        {
          "chargeUnit": "PerItem",
          "description": "可选服务描述",
          "inRoomRate": "true",
          "price": "99",
          "type": "AddBed"
        }
      ],
      "payType": 0,
      "promotionRules": [
        {
          "description": "促销信息描述",
          "promotionPrice": "10.0",
          "promotionUnit": "ImmediatelyReduced",
          "type": "MaxStay",
          "value": "0"
        }
      ],
      "ratePlanId": "323422891_1",
      "ratePlanName": "ratePlanName",
      "receiptType": 0,
      "refund": {
        "cancellationPolicyRules": [
          {
            "beforeHours": 32,
            "type": "AMOUNT_PENALTY",
            "value": "100"
          }
        ],
        "returnable": "true",
        "timeZone": "GMT+8"
      },
      "remarks": [
        {
          "description": "备注信息描述",
          "seq": 1
        }
      ],
      "roomTypeCode": "323422891",
      "roomTypeName": "roomTypeName",
      "status": 1,
      "surcharges": [
        {
          "chargeUnit": "PerNight",
          "description": "附加信息描述",
          "payType": 1,
          "price": "22"
        }
      ],
      "timestamp": 1718334771546,
      "wifi": "FREE"
    },
    {
      "area": "28平方米",
      "areaRange": "24",
      "bedInfo": {
        "beds": [
          {
            "bedCode": "SINGLE",
            "bedSize": "1.8m",
            "counts": 2,
            "description": "",
            "seq": 0
          }
        ],
        "relation": "AND"
      },
      "beginBookDate": "2024-06-15",
      "bookDesc": "bookDesc",
      "broadband": "FREE",
      "currencyCode": "CNY",
      "customerType": 1,
      "endBookDate": "2024-07-22",
      "floorRange": "2-4",
      "freeChildrenCounts": 0,
      "hasNonSmokeRoom": 0,
      "hasSmokeCleanRoom": 0,
      "hasWindow": 0,
      "hotelId": "374447",
      "immediately": 0,
      "maxBookHour": 500,
      "maxCheckInDay": 30,
      "maxOccupancy": 0,
      "minBookHour": 0,
      "minCheckInDay": 1,
      "noNonSmokeRoom": 0,
      "notAllowSmoking": 0,
      "optionRules": [
        {
          "chargeUnit": "PerItem",
          "description": "可选服务描述",
          "inRoomRate": "true",
          "price": "99",
          "type": "AddBed"
        }
      ],
      "payType": 0,
      "promotionRules": [
        {
          "description": "促销信息描述",
          "promotionPrice": "10.0",
          "promotionUnit": "ImmediatelyReduced",
          "type": "MaxStay",
          "value": "0"
        }
      ],
      "ratePlanId": "323422960_1",
      "ratePlanName": "ratePlanName",
      "receiptType": 0,
      "refund": {
        "cancellationPolicyRules": [
          {
            "beforeHours": 32,
            "type": "AMOUNT_PENALTY",
            "value": "100"
          }
        ],
        "returnable": "true",
        "timeZone": "GMT+8"
      },
      "remarks": [
        {
          "description": "备注信息描述",
          "seq": 1
        }
      ],
      "roomTypeCode": "323422960",
      "roomTypeName": "roomTypeName",
      "status": 1,
      "surcharges": [
        {
          "chargeUnit": "PerNight",
          "description": "附加信息描述",
          "payType": 1,
          "price": "22"
        }
      ],
      "timestamp": 1718334771547,
      "wifi": "FREE"
    }
  ]
}

3.10.7 输出示例

{
    "result": "SUCCESS",
    "message": "成功"
}

3.11酒店产品基本信息状态变更推送API

3.11.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/ratePlanStaticStatusUpdate

线上地址: 京东提供

3.11.2 HTTP 方法

POST

3.11.3 接口描述

京东提供此API,通过此API获取供应商酒店产品基本信息状态变更,供应商调用该API推送更新的产品基本信息状态。

3.11.4 输入参数

节点 名称 类型 是否必须 字段描述
appId 供应商应用id String Y 由京东酒店提供
sessionId 调用链编号 String Y 单次调用唯一标志(可以设置为时间戳)
data 酒店产品基本信息状态 Array Y (单次推送条数需小于等于30)
关联 产品基本信息状态

产品基本信息状态

节点 名称 类型 是否必须 字段描述
hotelId 酒店编码 string Y 酒店编码
roomTypeCode 物理房型编码 string Y 物理房型编码
roomTypeName 物理房型名称 string N 物理房型名称
ratePlanId 产品房型code string Y 产品房型code
ratePlanName 产品房型名称 string Y 产品房型名称
status 状态标识 integer Y 默认值 1; 状态标识,1:有效,0:无效,2:关房(此时可只传hotelId)
timestamp 时间戳 integer Y 时间戳-作为更新顺序及版本判断使用,需提供可判断数据更新版本数据

3.11.5 输出参数

节点 名称 类型 是否必须 字段描述
result 推送结果 String Y SUCCESS:处理成功
FAILURE:处理失败
errorMessage 错误码节点 Object N 关联 错误码节点 FAILURE 不为空
data 错误信息描述 Array N 关联 错误信息描述

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int Y 见附录 状态码枚举表
desc 错误描述 String N

3.11.6 输入示例

{
  "appId": "JD0201621523",
  "sessionId": "1718333791349",
  "data": [
    {
      "hotelId": "hotel23",
      "ratePlanId": "192021",
      "ratePlanName": "ratePlanName",
      "roomTypeCode": "123",
      "roomTypeName": "roomTypeName",
      "status": 0,
      "timestamp": 1718178601025
    },
    {
      "hotelId": "hotel23",
      "ratePlanId": "222324",
      "ratePlanName": "ratePlanName",
      "roomTypeCode": "123",
      "roomTypeName": "roomTypeName",
      "status": 0,
      "timestamp": 1718178601025
    },
    {
      "hotelId": "hotel23",
      "ratePlanId": "252627",
      "ratePlanName": "ratePlanName",
      "roomTypeCode": "123",
      "roomTypeName": "roomTypeName",
      "status": 0,
      "timestamp": 1718178601025
    }
  ]
                                    }

3.11.7 输出示例

{
    "result": "SUCCESS",
    "message": "成功"
}

3.12酒店产品日历价态推送API

3.12.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/ratePlanPricePush

线上地址: 京东提供

3.12.2 HTTP 方法

POST

3.12.3 接口描述

京东提供此API,通过此API获取供应商酒店产品价格日历信息,供应商调用该API推送产品价格日历。

3.12.4 输入参数

节点 名称 类型 是否必须 字段描述
appId 供应商应用id String Y 由京东酒店提供
sessionId 调用链编号 String Y 单次调用唯一标志(可以设置为时间戳)
data 酒店产品日历价态信息 Array Y (单次推送日期条数需小于等于30)
关联 酒店产品日历价态信息

酒店产品日历价态信息

节点 名称 类型 是否必须 字段描述
hotelId 酒店编码 string Y 酒店编码
roomTypeCode 物理房型编码 string Y 物理房型编码
ratePlanId 产品房型code string Y 产品房型code
ratePlanDateList 产品销售日期参数 Array Y 关联 产品销售日期价态
信息需要展示在用户的预订提示中
timestamp 时间戳 integer Y 时间戳-作为更新顺序及版本判断使用,需提供可判断数据更新版本数据

产品销售日期价态

节点 名称 类型 是否必须 字段描述
saleDateRange 售卖日期区间 Object Y 关联 售卖日期区间
price 房费 string Y 房费
taxFee 税费 string Y 税费
guideType 销售指导价类型 Integer N 0:售价=销售指导价
1:售价<销售指导价
2:售价<=销售指导价
3:售价>销售指导价
4:售价>=销售指导价
guidePrice 销售指导价 string N 销售指导价
guideTaxFee 销售指导税费 string N 销售指导税费
roomStatus 状态标识 string Y Available:可预订
Disable:不可预订
mealInfo 餐食信息 Object Y Object 转换为JSON字符串,最大支持128个字符
关联 餐食信息
refundable Integer string N 0:不可取消 为0时,优先级高于取消规则,1为可取消

售卖日期区间

节点 名称 类型 是否必须 字段描述
saleStartDate 是否可以取消 String Y 售卖开始日期 format = "yyyy-MM-dd"
saleEndDate 售卖结束日期 String Y 售卖结束日期 format = "yyyy-MM-dd"

3.12.5 输出参数

节点 名称 类型 是否必须 字段描述
result 推送结果 String Y SUCCESS:处理成功
FAILURE:处理失败
errorMessage 错误码节点 Object N 关联 错误码节点 FAILURE 不为空
data 错误信息描述 Array N 关联 错误信息描述

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int Y 见附录 状态码枚举表
desc 错误描述 String N

3.12.6 输入示例

{
  "appId": "JD0207101658",
  "sessionId": "1718333791349",
  "data": [
    {
      "hotelId": "374447",
      "ratePlanDateList": [
        {
          "guidePrice": "356.7",
          "guideTaxFee": "7.9",
          "guideType": 0,
          "mealInfo": {
            "breakfast": {
              "counts": 2,
              "description": "breakfast-description"
            }
          },
          "price": "456.7",
          "refundable": 1,
          "roomStatus": "Available",
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          },
          "taxFee": "8.9"
        }
      ],
      "ratePlanId": "290040403",
      "roomTypeCode": "290040403",
      "timestamp": 1718333791349
    },
    {
      "hotelId": "374447",
      "ratePlanDateList": [
        {
          "guidePrice": "356.7",
          "guideTaxFee": "7.9",
          "guideType": 0,
          "mealInfo": {
            "breakfast": {
              "counts": 2,
              "description": "breakfast-description"
            }
          },
          "price": "456.7",
          "refundable": 1,
          "roomStatus": "Available",
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          },
          "taxFee": "8.9"
        }
      ],
      "ratePlanId": "290489942",
      "roomTypeCode": "290489942",
      "timestamp": 1718333791349
    },
    {
      "hotelId": "374447",
      "ratePlanDateList": [
        {
          "guidePrice": "356.7",
          "guideTaxFee": "7.9",
          "guideType": 0,
          "mealInfo": {
            "breakfast": {
              "counts": 2,
              "description": "breakfast-description"
            }
          },
          "price": "456.7",
          "refundable": 1,
          "roomStatus": "Available",
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          },
          "taxFee": "8.9"
        }
      ],
      "ratePlanId": "293538084",
      "roomTypeCode": "293538084",
      "timestamp": 1718333791349
    },
    {
      "hotelId": "374447",
      "ratePlanDateList": [
        {
          "guidePrice": "356.7",
          "guideTaxFee": "7.9",
          "guideType": 0,
          "mealInfo": {
            "breakfast": {
              "counts": 2,
              "description": "breakfast-description"
            }
          },
          "price": "456.7",
          "refundable": 1,
          "roomStatus": "Available",
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          },
          "taxFee": "8.9"
        }
      ],
      "ratePlanId": "323381959",
      "roomTypeCode": "323381959",
      "timestamp": 1718333791349
    },
    {
      "hotelId": "374447",
      "ratePlanDateList": [
        {
          "guidePrice": "356.7",
          "guideTaxFee": "7.9",
          "guideType": 0,
          "mealInfo": {
            "breakfast": {
              "counts": 2,
              "description": "breakfast-description"
            }
          },
          "price": "456.7",
          "refundable": 1,
          "roomStatus": "Available",
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          },
          "taxFee": "8.9"
        }
      ],
      "ratePlanId": "323422891",
      "roomTypeCode": "323422891",
      "timestamp": 1718333791350
    },
    {
      "hotelId": "374447",
      "ratePlanDateList": [
        {
          "guidePrice": "356.7",
          "guideTaxFee": "7.9",
          "guideType": 0,
          "mealInfo": {
            "breakfast": {
              "counts": 2,
              "description": "breakfast-description"
            }
          },
          "price": "456.7",
          "refundable": 1,
          "roomStatus": "Available",
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          },
          "taxFee": "8.9"
        }
      ],
      "ratePlanId": "323422960",
      "roomTypeCode": "323422960",
      "timestamp": 1718333791350
    }
  ]
}

3.12.7 输出示例

{
    "result": "SUCCESS",
    "message": "成功"
}

3.13酒店产品日历库存推送API

3.13.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/ratePlanStockPush

线上地址: 京东提供

3.13.2 HTTP 方法

POST

3.13.3 接口描述

京东提供此API,通过此API获取供应商酒店产品价格日历库存信息,供应商调用该API推送产品价格日历库存。

3.13.4 输入参数

节点 名称 类型 是否必须 字段描述
appId 供应商应用id String Y 由京东酒店提供
sessionId 调用链编号 String Y 单次调用唯一标志(可以设置为时间戳)
data 酒店产品日历库存 Array Y (单次推送日期条数需小于等于30)
关联 酒店产品日历库存

酒店产品日历库存

节点 名称 类型 是否必须 字段描述
hotelId 酒店编码 string Y 酒店编码
ratePlanId 产品房型code string Y 产品房型code
roomTypeCode 物理房型编码 string Y 物理房型编码
saleDateList 售卖日期 Array Y 关联 售卖日期库存
timestamp 时间戳 integer Y 时间戳-作为更新顺序及版本判断使用,需提供可判断数据更新版本数据

售卖日期库存

节点 名称 类型 是否必须 字段描述
saleDateRange 售卖日期区间 Object Y 关联 售卖日期区间
roomLimit 房量 integer Y 房量
reservedRoomLimit 保留房数量 integer Y 保留房数量
isLimited 是否限量 integer Y 是否限量,0 不限量;1限量

3.13.5 输出参数

节点 名称 类型 是否必须 字段描述
result 推送结果 String Y SUCCESS:处理成功
FAILURE:处理失败
errorMessage 错误码节点 Object N 关联 错误码节点 FAILURE 不为空
data 错误信息描述 Array N 关联 错误信息描述

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int Y 见附录 状态码枚举表
desc 错误描述 String N

3.13.6 输入示例

{
  "appId": "JD0202901685",
  "sessionId": "1718333791349",
  "data": [
    {
      "hotelId": "hotel23",
      "ratePlanDateList": [
        {
          "isLimited": 0,
          "reservedRoomLimit": 9,
          "roomLimit": 50,
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          }
        }
      ],
      "ratePlanId": "192021",
      "roomTypeCode": "JD0201621523QRST",
      "timestamp": 1718179450918
    },
    {
      "hotelId": "hotel23",
      "ratePlanDateList": [
        {
          "isLimited": 0,
          "reservedRoomLimit": 9,
          "roomLimit": 50,
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          }
        }
      ],
      "ratePlanId": "222324",
      "roomTypeCode": "JD0201621523QRST",
      "timestamp": 1718179450918
    },
    {
      "hotelId": "hotel23",
      "ratePlanDateList": [
        {
          "isLimited": 0,
          "reservedRoomLimit": 9,
          "roomLimit": 50,
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          }
        }
      ],
      "ratePlanId": "252627",
      "roomTypeCode": "JD0201621523QRST",
      "timestamp": 1718179450918
    }
  ]
}

3.13.7 输出示例

{
    "result": "SUCCESS",
    "message": "成功"
}

3.14查询酒店可售报价

3.14.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/queryRatePlan

线上地址: 京东提供

3.14.2 HTTP 方法

POST

3.14.3 接口描述

京东提供此API,提供给供应商查询落地可售报价。

3.14.4 输入参数

节点 名称 类型 是否必须 字段描述
supplierCode 供应商应用id String Y 由京东酒店提供
hotelCode 酒店ID Array Y (单次推送日期条数需小于等于30)
checkInDate 入住时间 Date Y 格式:YYYY-MM-DD,如:2017-10-18
checkOutDate 离店时间 Date Y 格式:YYYY-MM-DD,如:2017-10-18

3.14.5 输出参数

节点 名称 类型 是否必须 字段描述
result 推送结果 String Y SUCCESS:处理成功
FAILURE:处理失败
errorMessage 错误码节点 Object N 关联 错误码节点 FAILURE 不为空
data 错误信息描述 Array N 关联 错误信息描述

错误节点

节点 名称 类型 是否必须 字段描述
code 错误编码 int Y 见附录 状态码枚举表
desc 错误描述 String N

3.14.6 输入示例

{
  "appId": "JD0202901685",
  "sessionId": "1718333791349",
  "data": [
    {
      "hotelId": "hotel23",
      "ratePlanDateList": [
        {
          "isLimited": 0,
          "reservedRoomLimit": 9,
          "roomLimit": 50,
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          }
        }
      ],
      "ratePlanId": "192021",
      "roomTypeCode": "JD0201621523QRST",
      "timestamp": 1718179450918
    },
    {
      "hotelId": "hotel23",
      "ratePlanDateList": [
        {
          "isLimited": 0,
          "reservedRoomLimit": 9,
          "roomLimit": 50,
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          }
        }
      ],
      "ratePlanId": "222324",
      "roomTypeCode": "JD0201621523QRST",
      "timestamp": 1718179450918
    },
    {
      "hotelId": "hotel23",
      "ratePlanDateList": [
        {
          "isLimited": 0,
          "reservedRoomLimit": 9,
          "roomLimit": 50,
          "saleDateRange": {
            "saleEndDate": "2024-07-12",
            "saleStartDate": "2024-06-12"
          }
        }
      ],
      "ratePlanId": "252627",
      "roomTypeCode": "JD0201621523QRST",
      "timestamp": 1718179450918
    }
  ]
}

3.14.7 输出示例

{
    "result": "SUCCESS",
    "message": "成功"
}

3.15查询落地酒店基础信息

3.15.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/getRatePlanBaseInfo

线上地址: 京东提供

3.15.2 HTTP 方法

POST

3.15.3 接口描述

京东提供此API,提供给供应商查询落地的酒店基础数据<。

3.15.4 输入参数

节点 名称 类型 是否必须 字段描述
supplierCode 供应商应用id String Y 由京东酒店提供
hotelCode 酒店ID Array Y (单次推送日期条数需小于等于30)

3.15.5 输出参数

节点 名称 类型 是否必须 字段描述
status 结果 String Y
message 错误码节点 Object N
data 数据 Array N DB直查数据

3.15.6 输入示例

{
  "hotelCode": [
    "12590862"
  ],
  "supplierCode": "JD0308981443"
}

3.15.7 输出示例

{
     "data": [
          {
               "area": null,
               "areaRange": null,
               "bedInfo": "{\"beds\":[{\"bedCode\":\"DOUBLE\",\"bedSize\":\"1.5m\",\"counts\":1,\"description\":\"\",\"seq\":1}],\"relation\":\"OR\"}",
               "beginBookDate": 1722528000000,
               "bookDesc": null,
               "broadband": "UNKNOWN",
               "createTime": 1722587200000,
               "currencyCode": "CNY",
               "customerType": 1,
               "del": 0,
               "endBookDate": 1738080000000,
               "floorRange": null,
               "freeChildrenCounts": null,
               "hasNonSmokeRoom": null,
               "hasSmokeCleanRoom": null,
               "hasWindow": null,
               "hotelId": "12590862",
               "id": 2,
               "immediately": 0,
               "maxBookHour": 120,
               "maxCheckInDay": 7,
               "maxOccupancy": 2,
               "minBookHour": 0,
               "minCheckInDay": 1,
               "noNonSmokeRoom": null,
               "notAllowSmoking": null,
               "optionRules": null,
               "payMode": 0,
               "promotionRules": null,
               "ratePlanId": "73367088",
               "ratePlanName": "易致大床房(仅限内宾)",
               "receiptType": 1,
               "refund": "{\"cancellationPolicyRules\":[{\"beforeHours\":6,\"type\":\"NO_PENALTY\",\"value\":\"0\"}],\"returnable\":\"true\"}",
               "remarks": null,
               "roomTypeCode": "10460593",
               "roomTypeName": null,
               "status": 1,
               "supplierCode": "JD0308981443",
               "surcharges": null,
               "timestamp": 305692253,
               "uid": "JD0308981443_12590862",
               "uidStr": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722587579000,
               "wifi": "UNKNOWN"
          },
          {
               "area": null,
               "areaRange": null,
               "bedInfo": "{\"beds\":[{\"bedCode\":\"DOUBLE\",\"bedSize\":\"1.5m\",\"counts\":1,\"description\":\"\",\"seq\":1}],\"relation\":\"OR\"}",
               "beginBookDate": 1722787200000,
               "bookDesc": null,
               "broadband": "UNKNOWN",
               "createTime": 1722842859000,
               "currencyCode": "CNY",
               "customerType": 1,
               "del": 0,
               "endBookDate": 1738339200000,
               "floorRange": null,
               "freeChildrenCounts": null,
               "hasNonSmokeRoom": null,
               "hasSmokeCleanRoom": null,
               "hasWindow": null,
               "hotelId": "12590862",
               "id": 3,
               "immediately": 0,
               "maxBookHour": 120,
               "maxCheckInDay": 7,
               "maxOccupancy": 2,
               "minBookHour": 0,
               "minCheckInDay": 1,
               "noNonSmokeRoom": null,
               "notAllowSmoking": null,
               "optionRules": null,
               "payMode": 0,
               "promotionRules": null,
               "ratePlanId": "72669345",
               "ratePlanName": "易雅大床房(无窗)",
               "receiptType": 1,
               "refund": "{\"cancellationPolicyRules\":[{\"beforeHours\":6,\"type\":\"NO_PENALTY\",\"value\":\"0\"}],\"returnable\":\"true\"}",
               "remarks": null,
               "roomTypeCode": "10690513",
               "roomTypeName": null,
               "status": 1,
               "supplierCode": "JD0308981443",
               "surcharges": null,
               "timestamp": 560973069,
               "uid": "JD0308981443_12590862",
               "uidStr": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722842859000,
               "wifi": "UNKNOWN"
          },
          {
               "area": null,
               "areaRange": null,
               "bedInfo": "{\"beds\":[{\"bedCode\":\"SINGLE\",\"bedSize\":\"1.2m\",\"counts\":2,\"description\":\"\",\"seq\":1}],\"relation\":\"OR\"}",
               "beginBookDate": 1722700800000,
               "bookDesc": null,
               "broadband": "UNKNOWN",
               "createTime": 1722847039000,
               "currencyCode": "CNY",
               "customerType": 1,
               "del": 0,
               "endBookDate": 1723132800000,
               "floorRange": null,
               "freeChildrenCounts": null,
               "hasNonSmokeRoom": null,
               "hasSmokeCleanRoom": null,
               "hasWindow": null,
               "hotelId": "12590862",
               "id": 4,
               "immediately": 0,
               "maxBookHour": 120,
               "maxCheckInDay": 7,
               "maxOccupancy": 2,
               "minBookHour": 0,
               "minCheckInDay": 1,
               "noNonSmokeRoom": null,
               "notAllowSmoking": null,
               "optionRules": null,
               "payMode": 0,
               "promotionRules": null,
               "ratePlanId": "72403661",
               "ratePlanName": "易尊双床房",
               "receiptType": 1,
               "refund": "{\"cancellationPolicyRules\":[{\"beforeHours\":6,\"type\":\"NO_PENALTY\",\"value\":\"0\"}],\"returnable\":\"true\"}",
               "remarks": null,
               "roomTypeCode": "10460581",
               "roomTypeName": null,
               "status": 1,
               "supplierCode": "JD0308981443",
               "surcharges": null,
               "timestamp": 565129675,
               "uid": "JD0308981443_12590862",
               "uidStr": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722847039000,
               "wifi": "UNKNOWN"
          }
     ],
     "message": "[getRatePlanBaseInfo]done!",
     "responseInfo": null,
     "status": 70998
}

3.16查询落地酒店报价信息

3.16.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/getRatePlanPrice

线上地址: 京东提供

3.16.2 HTTP 方法

POST

3.16.3 接口描述

京东提供此API,提供给供应商查询落地的酒店报价数据。

3.16.4 输入参数

节点 名称 类型 是否必须 字段描述
supplierCode 供应商应用id String Y 由京东酒店提供
hotelCode 酒店ID Array Y (单次推送日期条数需小于等于30)

3.16.5 输出参数

节点 名称 类型 是否必须 字段描述
status 结果 String Y
message 错误码节点 Object N
data 数据 Array N DB直查数据

3.16.6 输入示例

{
  "hotelCode": [
    "12590862"
  ],
  "supplierCode": "JD0308981443"
}

3.16.7 输出示例

{
     "data": [
          {
               "createTime": 1722579393000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 9,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 151.65,
               "ratePlanId": "48401931",
               "refundable": 1,
               "roomStatus": "Available",
               "roomTypeCode": "13754709",
               "saleDate": 1722528000000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 297506339,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722579393000
          },
          {
               "createTime": 1722579393000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 10,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 151.65,
               "ratePlanId": "48401931",
               "refundable": 1,
               "roomStatus": "Available",
               "roomTypeCode": "13754709",
               "saleDate": 1722614400000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 297506339,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722579393000
          },
          {
               "createTime": 1722579375000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 3,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 179.05,
               "ratePlanId": "48401936",
               "refundable": 0,
               "roomStatus": "Available",
               "roomTypeCode": "10460617",
               "saleDate": 1722614400000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 299391128,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722581278000
          },
          {
               "createTime": 1722579375000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 4,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 179.05,
               "ratePlanId": "48401936",
               "refundable": 0,
               "roomStatus": "Available",
               "roomTypeCode": "10460617",
               "saleDate": 1722700800000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 299391128,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722581278000
          },
          {
               "createTime": 1722848591000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 17,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 143.42,
               "ratePlanId": "61346639",
               "refundable": 1,
               "roomStatus": "Available",
               "roomTypeCode": "10690513",
               "saleDate": 1722873600000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 566704915,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722848591000
          },
          {
               "createTime": 1722588252000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 15,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 159,
               "ratePlanId": "73367088",
               "refundable": 1,
               "roomStatus": "Available",
               "roomTypeCode": "10460593",
               "saleDate": 1722528000000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 306337057,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722588252000
          },
          {
               "createTime": 1722588252000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 16,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 159,
               "ratePlanId": "73367088",
               "refundable": 1,
               "roomStatus": "Available",
               "roomTypeCode": "10460593",
               "saleDate": 1722614400000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 306337057,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722588252000
          },
          {
               "createTime": 1722579392000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 7,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 190,
               "ratePlanId": "73583808",
               "refundable": 0,
               "roomStatus": "Available",
               "roomTypeCode": "10460617",
               "saleDate": 1722614400000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 299404516,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722581291000
          },
          {
               "createTime": 1722579392000,
               "del": 0,
               "guidePrice": null,
               "guideTaxFee": null,
               "guideType": null,
               "hotelId": "12590862",
               "id": 8,
               "mealInfo": "{\"breakfast\":{\"counts\":0}}",
               "price": 190,
               "ratePlanId": "73583808",
               "refundable": 0,
               "roomStatus": "Available",
               "roomTypeCode": "10460617",
               "saleDate": 1722700800000,
               "supplierCode": "JD0308981443",
               "taxFee": 0,
               "timestamp": 299404516,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722581291000
          }
     ],
     "message": "[getRatePlanPrice]done!",
     "responseInfo": null,
     "status": 70998
}

3.17查询落地酒店库存信息

3.17.1 方法名称

测试地址: https://hotel-openapi.jd.com/apiGateway/sip/push/getRatePlanStock

线上地址: 京东提供

3.17.2 HTTP 方法

POST

3.17.3 接口描述

京东提供此API,提供给供应商查询落地的酒店库存数据。

3.17.4 输入参数

节点 名称 类型 是否必须 字段描述
supplierCode 供应商应用id String Y 由京东酒店提供
hotelCode 酒店ID Array Y (单次推送日期条数需小于等于30)

3.17.5 输出参数

节点 名称 类型 是否必须 字段描述
status 结果 String Y
message 错误码节点 Object N
data 数据 Array N DB直查数据

3.17.6 输入示例

{
  "hotelCode": [
    "12590862"
  ],
  "supplierCode": "JD0308981443"
}

3.17.7 输出示例

{
     "data": [
          {
               "createTime": 1722580343000,
               "del": 0,
               "hotelId": "12590862",
               "id": 1,
               "isLimited": 0,
               "ratePlanId": "48401931",
               "reservedRoomLimit": 0,
               "roomLimit": 2,
               "roomTypeCode": "13754709",
               "saleDate": 1722528000000,
               "supplierCode": "JD0308981443",
               "timestamp": 298456471,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722580343000
          },
          {
               "createTime": 1722580343000,
               "del": 0,
               "hotelId": "12590862",
               "id": 2,
               "isLimited": 0,
               "ratePlanId": "48401931",
               "reservedRoomLimit": 0,
               "roomLimit": 2,
               "roomTypeCode": "13754709",
               "saleDate": 1722614400000,
               "supplierCode": "JD0308981443",
               "timestamp": 298456471,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722580343000
          },
          {
               "createTime": 1722588858000,
               "del": 0,
               "hotelId": "12590862",
               "id": 3,
               "isLimited": 0,
               "ratePlanId": "73367088",
               "reservedRoomLimit": 0,
               "roomLimit": 1,
               "roomTypeCode": "10460593",
               "saleDate": 1722528000000,
               "supplierCode": "JD0308981443",
               "timestamp": 306968215,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722588858000
          },
          {
               "createTime": 1722588858000,
               "del": 0,
               "hotelId": "12590862",
               "id": 4,
               "isLimited": 0,
               "ratePlanId": "73367088",
               "reservedRoomLimit": 0,
               "roomLimit": 1,
               "roomTypeCode": "10460593",
               "saleDate": 1722614400000,
               "supplierCode": "JD0308981443",
               "timestamp": 306968215,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722588858000
          },
          {
               "createTime": 1722846800000,
               "del": 0,
               "hotelId": "12590862",
               "id": 5,
               "isLimited": 0,
               "ratePlanId": "72403661",
               "reservedRoomLimit": 0,
               "roomLimit": 1,
               "roomTypeCode": "10460581",
               "saleDate": 1722787200000,
               "supplierCode": "JD0308981443",
               "timestamp": 564914407,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722846800000
          },
          {
               "createTime": 1722846800000,
               "del": 0,
               "hotelId": "12590862",
               "id": 6,
               "isLimited": 0,
               "ratePlanId": "72403661",
               "reservedRoomLimit": 0,
               "roomLimit": 1,
               "roomTypeCode": "10460581",
               "saleDate": 1722873600000,
               "supplierCode": "JD0308981443",
               "timestamp": 564914407,
               "uid": "JD0308981443_12590862",
               "uniq": null,
               "updateTime": 1722846800000
          }
     ],
     "message": "[getRatePlanStock]done!",
     "responseInfo": null,
     "status": 70998
}

四.附录

4.1 状态码表

状态码枚举表

状态码 含义
200 成功
500 服务器异常
1001 AppId为空
1002 酒店不存在
1003 参数错误
1004 必填项为空
1005 时间戳为空
1006 数字签名为空
1007 数字签名错误
1008 AppId不存在
1009 预存金额不足

4.2 币种

代码 描述
CNY 人民币

4.3 促销

1. 连住优惠

type 促销类型 Last
promotionUnit 单位 DAY:连住xx天
value 与code相关的值 需要连住的天数N
例如:3,则连住3天以上享受此优惠
promotionPrice 促销金额 供应商每天优惠的金额,与fromDate/toDate相对应,多天用“|”分隔。 例如:10|10|10,则每日优惠10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示

2. 限时优惠

type 促销类型 Last_EQ
promotionUnit 单位
value 与code相关的值
promotionPrice 促销金额 每天优惠的金额,与fromDate/toDate相对应,多天用“|”分隔。例如:10|10|10,则每日优惠10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示。当前时段不符合限时优惠时,供应商需要对报价进行过滤

3. 提前预定优惠

type 促销类型 Advance
promotionUnit 单位 DAY:提前xx天
HOUR:提前XX小时,以入住日24点为准 例如:DAY
value 与code相关的值 需要提前的天数或者小时数N 例如:3,则提前3天预定以上享受此优惠
promotionPrice 促销金额 预定时间内每天优惠的金额,与fromDate/toDate相对应,多天用“|”分隔。例如:10|10|10,则每日优惠10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示

4. 最多连住天数

type 促销类型 MaxStay
promotionUnit 单位 DAY:最多连住xx天
value 与code相关的值 最多连住天数N 例如:3,则用户最多可以预定3天
promotionPrice 促销金额 预定时间内每天优惠的金额,与fromDate/toDate相对应,多天用“|”分隔。例如:10|10|10,则每日优惠10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示

5. 最少预订房间数

type 促销类型 MinRoomCount
promotionUnit 单位
value 与code相关的值 最小预定间数N 例如:3,则用户最少预定3间可以享受优惠价格
promotionPrice 促销金额 预定日期内每天优惠的金额,与fromDate/toDate相对应,多天用“|”分隔。 例如:10|10|10,则每日优惠10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示

6. 最多预订房间数

type 促销类型 MaxRoomCount
promotionUnit 单位
value 与code相关的值 最大预定间数N 例如:3,则用户最多预定3间
promotionPrice 促销金额 预定日期内每天优惠的金额,与fromDate/toDate相对应,多天用“|”分隔。 例如:10|10|10,则每日优惠10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示

7. 返现

type 促销类型 CashBack
promotionUnit 单位
value 与code相关的值
promotionPrice 促销金额 预定日期内每天返现的金额,与fromDate/toDate相对应,多天用“|”分隔。 例如:10|10|10,则每日返现10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示。注:当前时间段不在优惠时段时,供应商需要将报价过滤掉

8. 立减

type 促销类型 ImmediatelyReduced
promotionUnit 单位
value 与code相关的值
promotionPrice 促销金额 预定日期内每天立减的金额,与fromDate/toDate相对应,多天用“|”分隔。 例如:10|10|10,则每日立减10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示。注:当前时间段不在优惠时段时,供应商需要将报价过滤掉

9. 延时退房、免费升级、免费接送机、大礼包、其他

type 促销类型 CheckoutDelay
FreeUpgrade
FreeShuttle
Gift
Others
promotionUnit 单位
value 与code相关的值
promotionPrice 促销金额

10. 今夜甩卖

type 促销类型 TonightSale
promotionUnit 单位
value 与code相关的值
promotionPrice 促销金额 预定日期内每天优惠的金额,与fromDate/toDate相对应,多天用“|”分隔。 例如:10|10|10,则每日优惠10元,此优惠金额只用于记录保存展示,不会在报价中再次扣减。如果没有具体优惠金额,可以用0表示。注:当前时间段不在优惠时段时,供应商需要将报价过滤掉

4.4 加密方法

/**
 * MD5 哈希运算
 *
 * @param input
 * 待计算MD5哈希值的输入字符串
 * @param charset
 * 输入字符串的字符集
 * @return 输入字符串的MD5哈希值
 */
public static String getMD5(String input, String charset) {
        String s = null;
        char hexDigits[] = { //用来将字节转换成  16 进制表示的字符
                        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c',
                        'd',
                        'e', 'f'};
        try {
                java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
                md.update(input.getBytes(charset));
                byte tmp[] = md.digest(); //MD5 的计算结果是一个128位的长整数,用字节表示就是16个字节
                char str[] = new char[16 * 2]; //每个字节用16进制表示的话,使用两个字符,所以表示成16进制需要32个字符
                int k = 0; //表示转换结果中对应的字符位置
                for (int i = 0; i < 16; i++) { //从第一个字节开始,对MD5的每一个字节转换成16进制字符的转换
                        byte byte0 = tmp[i]; //取第i个字节
                        str[k++] = hexDigits[byte0 >>> 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;
    }
}