@lxx3061313
2018-12-02T14:04:50.000000Z
字数 29250
阅读 386
未分类
第三方渠道通过API接入商企通-分销平台-酒店分销服务时
接口交互流程如下:
查询酒店id列表
, 并调用酒店详情
获取酒店静态信息并落库, 进行酒店匹配酒店产品列表
获取各个酒店下的产品信息(预定规则、取消规则、早餐信息、价格等)并落库下单前校验
接口, 确认是否可预订(避免第三方渠道落地信息, 如房态、价格等和分销平台不一致)预约下单
进行预定(请确保第三方渠道在分销平台的账户余额充足, 避免资金不足下单失败), 分销平台返回美团订单号供第三方记录取消订单
接口进行退款商企通分销平台API接口为基于HTTP协议、RESTful风格的标准API接口,请求的编码方式为UTF-8编码,请求地址为:http://fenxiao.meituan.com/opdtor/api
(正式环境)。
每个请求都需要指定公共请求参数和业务请求参数。公共请求参数为每个向平台发起的请求都需包含的参数,业务请求参数与特定接口相关。
名称 | 类型 | 说明 |
---|---|---|
method | String | 接口名称,如:hotel.poi.list |
version | String | 分销平台API版本号,目前版本号为1.0 |
timestamp | Long | 10位时间戳。若请求发起时间与平台服务端接受请求的时间相差过大,平台将直接拒绝本次请求 |
nonce | Integer | 随机32位正整数。与timestamp联合使用以防止重放攻击 |
partnerId | Integer | 平台分配给第三方渠道的分销业务ID |
accesskey | String | 平台分配给第三方渠道的安全凭证公钥 |
signature | String | 用于验证此次请求合法性的签名(签名方法见下文) |
名称 | 类型 | 说明 |
---|---|---|
data | String | 取值与具体请求接口相关,格式为JSON体的字符串形式。如hotel.poi.list请求的data值可以为"{\"maxId\":0,\"pageSize\":2}" |
名称 | 类型 | 说明 |
---|---|---|
code | Integer | 接口返回码(详见下文code映射表) |
message | String | code详细信息 |
partnerId | Integer | 分销业务ID |
result | JSON Object | 请求响应数据, 不同请求返回的结构不同 |
code映射表
code值 | 含义 | 说明 |
---|---|---|
0 | 请求成功 | 平台已接收请求并返回处理结果 |
1000 | 参数错误 | 可能为如下情况: 1. 请求参数缺失; 2. 请求参数不合法; 3. 请求中的timestamp参数值与分销平台服务端接受请求的时间相差过大 |
1100 | 鉴权失败 | 可能为如下情况: 1. 请求的签名鉴权失败; 2. 请求被判定为重放攻击; 3. 该账号无权访问此次请求的接口, 例如渠道仅开通了门票分销业务, 无权调用酒店分销接口 |
1200 | 超过配额 | 可能为如下情况: 1. 此次请求的接口请求次数超过了配额; 2. 此次请求的接口请求频率超过了限制。 3. 各个接口的每日请求配额和请求频率阈值不满足业务需求时, 请联系分销平台相关对接人员进行沟通调整。 |
1300 | 黑名单 | 请求的产品被加入黑名单,禁止访问。此时建议第三方渠道将相关产品下架。 |
2000 | 系统异常 | 分销平台处理请求时出现系统异常。 |
接入测试时,需要联系商企通-分销平台商务同学,申请获取partnerId、accessKey、secretKey。
其中partnerId和accessKey填充到公共请求参数中,
通过secretKey对请求参数进行加密,作为signature。
假设分配得到的参数如下:
名称 | 取值 |
---|---|
partnerId | 171 |
accesskey | 83dc18c7bf0e37fda2559a5f2f0e28eb |
secretkey | 901a2004ef7903627fdc6a2b8016f164 |
下面以调用查询酒店id列表
接口为例, 详细描述计算签名的步骤:
1、参数排序
将请求参数依据参数名称(全部转化为小写)的字典序进行升序排列。参与排序的请求参数包括除signature以外的所有公共请求参数和业务请求参数。若业务请求参数对应的数据为空值或null,则业务请求参数无需参与排序。业务请求参数的数据为JSON对象时,需要将其转化为字符串再参与排序和签名计算。
查询酒店id列表业务请求参数
{
"maxId":0,
"pageSize":2
}
完整的请求参数
名称 | 取值 | 含义 |
---|---|---|
method | hotel.poi.list | 请求业务方法名 |
version | 1.0 | 分销开放平台API版本号 |
timestamp | 1472027309 | 发起请求时的时间戳 |
nonce | 547 | 随机整数 |
partnerId | 171 | 合作商ID |
accesskey | 83dc18c7bf0e37fda2559a5f2f0e28eb | 安全凭证公钥 |
data | {"maxId":0,"pageSize":2} | 业务请求参数 |
signature | 待计算 | 签名值 |
则排序后的结果为
{
"accesskey" : "83dc18c7bf0e37fda2559a5f2f0e28eb",
"data" : "{\"maxId\":0,\"pageSize\":2}",
"method" : "hotel.poi.list",
"nonce" : 547,
"partnerId" : 171,
"timestamp" : 1472027309,
"version" : "1.0"
}
2、参数拼接
将排序后的请求参数依照参数名=参数值
的形式格式化,然后将各个参数依序用&
符号拼接在一起,得到待签名字符串plainText
accesskey=83dc18c7bf0e37fda2559a5f2f0e28eb&data={"maxId":0,"pageSize":2}&method=hotel.poi.list&nonce=547&partnerId=171×tamp=1472027309&version=1.0
3、生成签名
使用HMAC-SHA1算法对plainText进行加密,再使用Base64对加密后的字节流进行编码,即得到了最终签名signature
signature=base64_encode(hash_hmac('sha1', $plainText, $secretkey, true));
4、构造请求参数
设置Content-Type
为application/json; charset=utf-8
, Accept
为application/json
curl -v -X POST "http://fenxiao.meituan.com/opdtor/api" -H "Accept: application/json" -H "Content-Type: application/json; charset=utf-8" -d '{"nonce":1216045893,"timestamp":1519745994,"accesskey":"83dc18c7bf0e37fda2559a5f2f0e28eb","version":"1.0","partnerId":171,"signature":"CwiHO26X5cenPgN737JmpRs1XQA=","data":"{\"maxId\":0,\"pageSize\":2}","method":"hotel.poi.list"}'
第三方渠道接入商企通分销平台时,需要联系我们获取测试账号和线上账号信息,测试账号只能用于测试环境,在测试环境测试验证没有问题后,
可以在线上进行功能验证,线上有专用测试酒店,请联系我们获取。禁止在线上环境,随意挑选酒店测试,否者产生的费用将由第三方承担。
查询酒店id列表
(hotel.poi.list)名称 | 描述 |
---|---|
功能 | 获取可分销的酒店ID列表 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.poi.list |
名称 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
maxId | Long | 是 | 0 | 查询上一页时返回的maxId标记值, 查询第一页时该值为0 |
pageSize | Integer | 是 | 10 | 每页酒店个数,取值范围[1,1000] |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
maxId | Long | 是 | maxId标记值,用于下一页查询。当maxId为-1时,表示已经查询到最后一页 |
hotelIds | Array<Long> | 是 | 可分销的酒店ID列表 |
{
"code": 0,
"message": "成功",
"partnerId": 3,
"result": {
"maxId": 10088,
"hotelIds": [
52786813,158377068
]
}
}
查询酒店详情
(hotel.detail)名称 | 描述 |
---|---|
功能 | 查询酒店静态信息 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.detail |
名称 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
hotelIds | Array<Long> | 是 | [52786813] | 需要查询酒店详情的酒店ID列表,一次最多查询20个 |
strategy | Integer | 是 | 15 | 查询策略: 1 基础信息 2 扩展信息 4 房型信息 8 图片信息 策略值可进行 加和 以查询多项信息 如:5 查询基础信息和图片信息 15 查询全部信息 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelDetails | Array<HotelDetail > |
否 | 酒店详情数据 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
baseInfo | HotelBaseInfo |
否 | 酒店基本信息。 |
extendInfo | HotelExtendInfo |
否 | 酒店扩展信息。 |
roomInfos | Array<RoomInfo > |
否 | 酒店房型信息。 |
poiImages | Array<PoiImage > |
否 | 酒店图片信息。 |
hotelId | Long | 是 | 酒店ID。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Long | 是 | 酒店ID。 |
pointName | String | 是 | 酒店名称。 |
info | String | 否 | 酒店描述信息。 |
longitude | Integer | 是 | 高德经度,取值为实际经度值*10的6次方取整。 |
latitude | Integer | 是 | 高德纬度,取值为实际纬度值*10的6次方取整。 |
address | String | 是 | 酒店地址。 |
cityName | String | 是 | 酒店所在城市名,如“上海市”。 |
cityLocationId | Integer | 是 | 城市ID与城市名、城市行政区ID与行政区名的映射关系列表请联系分销平台获取。 |
locationName | String | 是 | 酒店所在城市行政区名,如“松江区”。 |
locationId | Integer | 是 | 城市行政区ID。 |
bareaName | String | 否 | 酒店所在商圈名。 |
avgScore | Integer | 否 | 用户评分,10分制,取值为实际值*10。如用户评分为4.2分,则avgScore=42。 |
phone | String | 是 | 酒店联系电话。 |
openInfo | String | 否 | 酒店填写的营业时间,无固定格式,如取值可以为“24小时”。 |
poiSubways | String | 否 | 附近地铁信息。废弃 |
closeStatus | Integer | 是 | 酒店营业状态: 0 营业中 1 已关门 2 筹建中 3 暂停营业 |
frontImage | String | 否 | 首图信息,取值为图片的URL地址。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelFacilities | Map<Integer, String> | 否 | 酒店设施,key表示酒店设施ID(ID对应设施参看酒店设施),value="0"表示不提供该设施;value="1"表示提供该设施。 |
hotelService | Map<Integer, String> | 否 | 酒店服务,key表示酒店服务ID(ID对应服务参看酒店服务),value="0"表示不提供该服务;value="1"表示提供该服务。 |
poiExtInfo | PoiExtInfo |
是 | 酒店门店扩展信息。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Long | 是 | 酒店ID。 |
openDate | String | 否 | 开业时间,格式为yyyy/MM或yyyy/MM/dd。 |
decorationDate | String | 否 | 装修时间,格式为yyyy/MM或yyyy/MM/dd。 |
roomNum | Integer | 否 | 酒店房间总数。 |
floorNum | Integer | 否 | 酒店楼层高度。 |
hotelStar | Integer | 否 | 酒店星级: 0 国家旅游局颁布五星级证书 1 豪华(按五星级标准建造) 2 国家旅游局颁布四星级证书 3 高档(按四星级标准建造) 4 国家旅游局颁布三星级证书 5 舒适型(按三星级标准建造) 6 经济型 7 低档 |
poiType | String | 否 | 酒店类型: 0 经济型 1 快捷酒店 2 商务酒店 3 主题酒店 4 情侣酒店 5 公寓 6 客栈 7 民宿 8 青年旅社 9 农家院 10 家庭旅馆 11 招待所 12 度假酒店 13 别墅 最多可同时包含两项酒店类型,两项间以半角逗号分隔,如"9,10"表示该酒店即是农家院又是家庭旅馆。 |
themeTag | String | 否 | 酒店主题标签: 0 购物便捷 1 培训学习 2 蜜月出行 3 休闲情调 4 交通便利 5 离医院近 6 商旅之家 7 四合院 8 园林庭院 9 安静优雅 10 特色建筑 11 周边美景 12 家有萌宠 13 文艺范儿 14 观景露台 15 古色古香 最多可同时包含三项酒店主题标签,各项间以半角逗号分隔,如"9,13,15"表示该酒店安静优雅又有文艺范儿,还古色古香。 |
checkinTimeBegin | String | 否 | 登记入住开始时间,格式为HH:mm,取值范围为[06:00, 23:30],半小时为一个取值点,如"06:00"、"06:30"。 |
checkinTimeEnd | String | 否 | 登记入住截止时间,checkinTimeEnd="0"表示登记入住没有截止时间。非0值则格式为HH:mm,取值范围为[14:30, 23:59],半小时为一个取值点,如"14:30"、"15:00"。当天的最后半个小时特殊处理,表示为"23:59"。 |
checkoutTime | String | 否 | 离店时间,checkoutTime="0"表示固定小时制离店,即入住checkOutTimeHours小时之后离店;非0值则格式为HH:mm,取值范围为[06:00, 23:59],半小时为一个取值点,如"14:30"、"15:00"。当天的最后半个小时特殊处理,表示为"23:59"。 |
checkoutTimeHours | Float | 否 | 当checkoutTime="0"时必填,精度为一位小数,如checkoutTimeHours=6.5表示入住6个半小时后离店。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
roomBaseInfo | RoomBaseInfo |
是 | 房型基本信息。 |
roomExtendInfo | RoomExtendInfo |
否 | 房型扩展信息。 |
roomBedInfos | Array<RoomBedInfo > |
否 | 床型基本信息。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
roomId | Integer | 是 | 房型ID。 |
hotelId | Long | 是 | 酒店ID。 |
roomType | Integer | 否 | 房型类型: 0 大床间(单间) 1 单人间(单间) 2 双床间(单间) 3 三人间(单间) 4 套房 5 独栋 6 床位房 |
roomName | String | 否 | 房型名称, 可能为空, 名称非常多样。 |
roomDesc | String | 否 | 房间特色描述文案,多个文案间以半角逗号分隔,如"刘德华住过的房间,隔音效果佳"。 |
useableArea | String | 否 | 房间可用面积。 |
capacity | String | 否 | 房间最大容纳人数。 |
window | Integer | 是 | 房间窗户情况: 0 有窗 1 部分有窗 2 无窗 |
windowView | String | 否 | 窗景描述。 |
windowBad | String | 否 | 窗户不利因素: 0 朝向走廊 1 装饰性假窗 2 天窗 3 窗户较小 4 窗外是墙体 |
extraBed | Integer | 是 | 加床情况: 0 不可加床 1 可以加床 |
floor | String | 否 | 房间所在楼层,如"2"、"2-3" |
internetWay | Integer | 否 | 房间上网方式: 0 无法上网 1 无线WIFI 2 有线宽带 3 无线WIFI和有线宽带 |
weekdayPrice | Integer | 否 | 平日参考价,单位为分。 |
weekendPrice | Integer | 否 | 周末参考价,单位为分。 |
status | Integer | 是 | 房型状态: 0 无效 1 有效 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
roomFacilities | Map<Integer, String> | 否 | 房间设施,key表示房间设施ID(ID对应设施参看房间设施),value="0"表示不提供该设施;value="1"表示提供该设施。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
roomId | Integer | 是 | 房型ID。 |
bedType | String | 是 | 床型类型,如"超级大床"、"大床"等(附录给出了一些参考值)。 |
bedDesc | String | 是 | 床型描述,如"1.5x2.0米"、"1.8x2.0米"等(附录给出了一些参考值)。 |
bedCount | Integer | 是 | 床数。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
typeId | Integer | 是 | 图片类型, 1:环境,9:客房,19:配套设施,32:大厅,34:外观,10:其他 |
typeName | String | 是 | 图片类型名称,如"客房"、"外观"、"公共设施"、"大厅"、"其他"等。 |
imgDesc | String | 否 | 图片描述。 |
url | String | 是 | 图片URL地址。 |
roomId | Integer | 否 | typeId=9时非空,标示本图片对应的房型ID |
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"hotelDetails": [
{
"baseInfo": {
"hotelId": 2,
"pointName": "鑫意时尚宾馆",
"info": "鑫意时尚宾馆坐落于中山亭商圈,往西100米即是湘江沿江风光带,往南100米即是五一广场商圈,交通便利,装修精致温馨,共有标间,商务间,麻浆麻,情侣圆床等60余间。",
"longitude": 112973920,
"latitude": 28200817,
"address": "中山路366号(中山亭往西150米)",
"cityName": "长沙市",
"locationName": "开福区",
"bareaName": "开福万达广场",
"locationId": 430105,
"cityLocationId": 430100,
"avgScore": 45,
"phone": "0731-85635666",
"openInfo": "24小时",
"poiSubways": "com.sankuai.meituan.poiop.remote.vo.PoiSubwayView@207a23f0",
"closeStatus": 0,
"frontImage": "http://p1.meituan.net/deal/__9351348__6272478.jpg"
},
"extendInfo": {
"hotelFacilities": {
"101018":"0",
"101023":"0",
"101097":"1"
},
"hotelService": {
"101007": "1",
"101038": "1",
"101045": "1",
"101128": "0",
"101135": "0"
},
"poiExtInfo": {
"hotelId": 2,
"openDate": "2013/01",
"decorationDate": null,
"roomNum": 65,
"floorNum": null,
"hotelStar": 6,
"foregiftType": 1,
"foregift": 20000,
"poiType": null,
"themeTag": null,
"checkinTimeBegin": "14:00",
"checkinTimeEnd": "0",
"checkoutTime": "12:00",
"checkoutTimeHours": 0
}
},
"roomInfos": [
{
"roomBaseInfo": {
"roomId": 23,
"hotelId": 2,
"roomType": 0,
"roomName": "套房2",
"roomDesc": "",
"useableArea": "",
"capacity": "",
"window": 0,
"windowView": "",
"windowBad": "",
"extraBed": 0,
"floor": "",
"internetWay": 2,
"weekdayPrice": 20600,
"weekendPrice": 20600,
"status": 1
},
"roomExtendInfo": {
"roomFacilities": {
"101111": "2",
"101113": "1",
"101125": "1",
"101126": "1"
}
},
"roomBedInfos": [
{
"roomId": 23,
"bedType": "大床",
"bedDesc": "1.8×2.0米",
"bedCount": 1
}
]
}
],
"poiImages": [
{
typeId: 9,
typeName: "客房",
imgDesc: "客房",
url: "http://p0.meituan.net/hotel/dc126d5e7aaba5a97003e1908daae75b3578683.jpg",
roomId: 168295
},
{
typeId: 19,
typeName: "配套设施",
imgDesc: "公共设施",
url: "http://p0.meituan.net/deal/__17142481__3368934.jpg",
roomId: null
}
]
}
]
}
}
查询酒店下产品列表
(hotel.goods.rp)名称 | 描述 |
---|---|
功能 | 指定酒店ID, 查询该酒店下所有产品详细信息列表, 包括产品对应房型 基本信息、取消规则、预订规则、服务条款、使用规则、价格信息等 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.goods.rp |
名称 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
hotelIds | Array<Long> | 是 | [52786813] | 请求查询的酒店ID列表,一次最多查询10个 |
checkinDate | String | 是 | 2017-02-07 | 入住日期,格式为yyyy-MM-dd,不能早于当前日期。 |
checkoutDate | String | 是 | 2017-02-08 | 离店日期,格式为yyyy-MM-dd,与当前日期相差不能超过30天。 |
goodsType | Integer | 是 | 1 | 产品类型: 1 全日房 2 钟点房 (目前不开放) |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelGoods | Array<HotelGoods > |
否 | 酒店产品详细信息列表。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Long | 是 | 酒店ID。 |
goods | Array<GoodsInfo > |
否 | 酒店产品信息列表。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Long | 是 | 酒店ID。 |
goodsId | Long | 是 | 产品ID。 |
goodsName | String | 是 | 产品名称。 |
needRealTel | Integer | 否 | 是否需要用户真实手机号 0 不需要 1 需要 |
goodsStatus | Integer | 是 | 房态: 0 满房 1 可预订 2 不可预订 3 不展示 |
goodsType | Integer | 是 | 产品类型: 1 全日房 2 钟点房 |
confirmType | Integer | 否 | 确认类型: 0 不支持即时确认 1 支持即时确认 |
invRemain | Integer | 否 | 库存情况: 0 无库存 1 有库存 |
averagePrice | Integer | 是 | 平均价格,单位为分。 |
originalPrice | Integer | 否 | 市场价格,单位为分。 |
breakfast | Array<Breakfast > |
否 | 早餐说明。 |
roomInfoList | Array<GoodsRoomInfo > |
否 | 产品房型信息列表, 每个产品只对应1个房间信息 |
cancelRules | Array<CancelRule > |
否 | 取消规则。 |
gifts | Array<Gift > |
否 | 礼包信息。 |
bookRules | Array<BookRule > |
否 | 预订规则。 |
invoiceInfo | InvoiceInfo |
否 | 发票信息。 |
priceModels | Array<PriceModel > |
否 | 产品价格信息列表。 |
goodsActivityMap | Map<String,Integer> | 否 | 特殊活动标记,值为1表示活动有效,值为2表示活动无效。 lastMinute 今夜特惠 timeLimitedSpecial 限时特惠 holidaySpecial 假日特惠 |
goodsStatuses | Array<DayGoodsStatus > |
否 | 房态列表。 数量和checkinDate、checkoutDate范围对应 废弃 |
hourRoomReceptionTime | Array<ReceptionTime > |
否 | 钟点房商家接待时段,空值表示全时段接待 废弃 |
timeIntervalMin | Integer | 否 | 钟点房时间粒度,单位为分钟,废弃 |
timeLimitMin | Integer | 否 | 钟点房时长限制,单位为分钟,废弃 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
breakfastType | Integer | 是 | 早餐类型: 0 不含早餐 1 含有breakfastNum份免费早餐 2 收费早餐 |
breakfastNum | Integer | 否 | 免费早餐数,breakfastType=1时非空。 |
inStartDate | Integer | 是 | 早餐规则生效开始日期,0表示默认生效规则 |
inEndDate | Integer | 是 | 早餐规则生效结束日期,0表示默认生效规则 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
roomId | Integer | 是 | 房型ID。 |
roomName | String | 是 | 房型名称。 |
cityId | Integer | 是 | 城市ID。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
cancelType | Integer | 是 | 取消规则: 0 不可取消 1 可以取消 |
aheadCancelDays | Integer | 否 | 提前取消天数,aheadCancelDays=0表示入住当日取消。 |
deductType | Integer | 否 | 提前取消时间类型: 0 时间 1 时间量 |
aheadCancelHours | String | 否 | 提前取消的时间值或时间量值 deductType=0 格式为"HH:mm:ss", 例如: deductType=0,aheadCancelDays=0,aheadCancelHours="18:00:00",表示入住日18:00前可以取消;deductType=1 格式为"数字", 例如: deductType=1,aheadCancelDays=0,aheadCancelHours=4表示入住日20:00前可以取消(提前4小时即24 - 4 = 20:00点)。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
giveType | Integer | 是 | 赠送方式: 3 只赠送一次 4 每天赠送一次 |
giftName | String | 否 | 礼包名称。 |
giftDesc | String | 否 | 礼包详情。 |
giftPrice | Integer | 否 | 礼包市场价格,单位为分。 |
availableDateType | Integer | 否 | 礼包生效规则: 0 长期有效 1 预订期间 2 入住期间 3 预订和入住期间 |
availableDate | Array<GiftDate > |
否 | 可领取礼包时间段。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
serialCheckinMin | Integer | 是 | 连续入住最少天数,0表示不限制。 |
serialCheckinMax | Integer | 是 | 连续入住最多天数,0表示不限制。 |
roomCountMin | Integer | 是 | 最少预订间数,0表示不限制。 |
roomCountMax | Integer | 是 | 最多预订间数,0表示不限制。 |
earliestBookingDays | Integer | 否 | 最早预订天数,空值表示不限制 |
earliestBookingHours | String | 否 | 最早预订时间,格式为HH:mm:ss, 空值表示不限制 |
latestBookingDays | Integer | 否 | 最晚预订天数,可能取值-1,0,正数。其中-1表示支持凌晨预定,例如:04-19号入住,latestBookingHours=“06:00:00“,则表示最晚在04-20号凌晨6点前可预定。 |
latestBookingHours | String | 否 | 最晚预订时间,格式为HH:mm:ss, 空值表示不限制 |
isDaybreakBooking | Integer | 否 | 是否支持凌晨预定 1 支持, 0 不支持 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
startDate | String | 是 | 领取礼包开始日期,格式为yyyy-MM-dd。 |
endDate | String | 是 | 领取礼包结束日期,格式为yyyy-MM-dd。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
invoiceMode | Integer | 是 | 发票模式: 1 佣金模式 酒店开具发票,可显示文案为:"如需发票,请向酒店前台索取"2 底价模式 美团开具发票3 第三方开具发票 |
supportTypes | Array<InvoiceType > |
否 | 发票类型信息,invoiceMode=2时非空 如果需要美团开具发票,在下单时需要填写收取发票信息 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
type | Integer | 是 | 发票类型: 2 增值税普通发票(纸质) 3 增值税电子发票(电子)(开具后发送至邮箱) 4 增值税专用发票(纸质) |
postage | Integer | 是 | 发票邮寄金额 ,单位为分 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
date | String | 是 | 日期,yyyy-MM-dd格式 |
status | Integer | 是 | 产品状态: 0 满房 1 可预订 2 不可预订 3 不展示 |
废弃
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
startTime | String | 是 | 接待开始时间,格式为HH:mm:ss。 |
endTime | String | 是 | 接待结束时间,格式为HH:mm:ss。 |
业务请求参数:
{
"hotelIds": [123, 456],
"checkinDate": "2016-09-02",
"checkoutDate": "2016-09-30",
"goodsType": 1
}
转化为字符串:
data="{\"hotelIds\":[123,456],\"checkinDate\":\"2016-09-02\",\"checkoutDate\":\"2016-09-30\",\"goodsType\":1}"
响应数据:
{
"code":0,
"message":"成功",
"partnerId":111,
"result":{
"hotelGoods":[
{
"hotelId":52786813,
"goods":[
{
"hotelId":52786813,
"goodsId":3870293,
"goodsName":"时尚大床房0913-不含早-入住日18点前可取消",
"goodsStatus":1,
"goodsType":1,
"needRealTel":0,
"confirmType":0,
"invRemain":1,
"averagePrice":30000,
"originalPrice":0,
"breakfast":[
{
"breakfastType":0,
"breakfastNum":0,
"inStartDate":0,
"inEndDate":0
},
{
"breakfastType":0,
"breakfastNum":0,
"inStartDate":20180529,
"inEndDate":20180610
}
],
"roomInfoList":[
{
"roomId":1212802,
"roomName":"时尚大床房0913",
"cityId":8000
}
],
"cancelRules":[
{
"cancelType":1,
"aheadCancelDays":0,
"deductType":0,
"aheadCancelHours":"18:00:00"
}
],
"gifts":[
{
"giveType":3,
"giftName":"套套",
"giftDesc":"只能使用一次",
"giftPrice":3300,
"availableDateType":3,
"availableDate":[
{
"startDate":"2016-09-02",
"endDate":"2016-09-08"
}
]
}
],
"bookRules":[
{
"serialCheckinMin":0,
"serialCheckinMax":0,
"roomCountMin":0,
"roomCountMax":0,
"earliestBookingDays":-1,
"earliestBookingHours":null,
"latestBookingDays":6,
"latestBookingHours":"23:59:00",
"isDaybreakBooking":1
}
],
"priceModels":[
{
"date":"2018-03-08",
"salePrice":30000,
"subPrice":1200,
"subRatio":400,
"dayType":0
}
],
"invoiceInfo":{
"invoiceMode":2,
"supportTypes":[
{
"type":3,
"postage":0
},
{
"type":2,
"postage":1000
}
]
},
"goodsActivityMap":{
"lastMinute":1
}
}
]
}
]
}
}
查询库存信息
(hotel.goods.inventory)名称 | 描述 |
---|---|
功能 | 通过产品ID和房型ID查询产品的库存情况,只可用于判断是否有库存,不能用于判断是否可预订, 不建议调用 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.goods.inventory |
名称 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
goodsId | Long | 是 | 12345 | 产品ID。 |
roomId | Integer | 是 | 45678 | 房型ID |
startDate | String | 是 | 2017-09-01 | 价格日历开始时间(包含),格式为yyyy-MM-dd。 |
endDate | String | 是 | 2017-09-10 | 价格日历结束时间(不包含),格式为yyyy-MM-dd。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
goodsInventory | GoodsInventory |
否 | 产品库存信息。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
goodsId | Long | 是 | 产品ID。 |
roomId | Integer | 是 | 房型ID。 |
remain | Integer | 是 | 库存情况: 0 无库存 1 有库存 |
业务请求参数:
{
"goodsId": 12345,
"roomId": 123,
"startDate": "2016-09-14",
"endDate": "2016-09-18"
}
转化为字符串:
data="{\"goodsId\":12345,\"roomId\":123,\"startDate\":\"2016-09-14\",\"endDate\":\"2016-09-18\"}"
响应数据:
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"inventory": {
"goodsId": 12345,
"roomId": 123,
"remain": 1
}
}
}
查询产品价格日历
(hotel.goods.price)名称 | 描述 |
---|---|
功能 | 查询给定时间范围内的可获取到的价格信息。例如: startDate=“2016-09-01”,endDate="2016-09-10",商家设置的产品价格日历为["2016-08-07", "2016-09-07"],则返回的产品价格日历区间为["2016-09-01", "2016-09-07"] 注意:hotelIds和goodsIds传一个即可,两个都传优先用hotelIds查询,建议使用hotelIds作为查询条件。 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.goods.price |
名称 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
goodsIds | Array<Long> | 否 | [52786813] | 需要查询价格日历的产品ID列表,每次最多查询的产品个数为10个。 |
hotelIds | Array<Long> | 否 | [182024891] | 需要查询价格日历的酒店ID列表,每次最多查询的酒店个数为10个。 |
startDate | String | 是 | 2017-09-01 | 价格日历开始时间(包含),格式为yyyy-MM-dd。 |
endDate | String | 是 | 2017-09-10 | 价格日历结束时间(不包含),格式为yyyy-MM-dd。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
goodsPrices | Array<GoodsPrice > |
否 | 产品价格日历列表。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelIds | Long | 否 | 酒店ID。用goodsid作为查询条件此字段为空 |
goodsId | Long | 是 | 产品ID。 |
priceModels | Array<PriceModel > |
否 | 产品价格信息列表。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
date | String | 是 | 日期,格式为yyyy-MM-dd。 |
salePrice | Integer | 是 | 推荐分销商依此价格进行售卖(售卖价),单位为分。 |
subPrice | Integer | 否 | 给分销商的佣金,单位为分。 |
subRatio | Integer | 否 | 分销平台与分销商约定的佣金比率,取值为实际值乘以10000的结果。如佣金比率为4%,则subRatio=400。 |
dayType | Integer | 是 | 价日类型: 0 平日 1 周末 2 特殊日 |
业务请求参数:
{
"goodsIds": [1234761091],
"startDate": "2017-09-01",
"endDate": "2017-09-10"
}
转化为字符串:
data="{\"goodsIds\":[1234761091],\"startDate\":\"2017-09-01\",\"endDate\":\"2017-09-10\"}"
响应数据:
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"goodsPrices": [
{
"goodsId": 1234761091,
"priceModels": [
{
"date": "2016-09-01",
"salePrice": 20000,
"subPrice": 500,
"subRatio": 400,
"dayType": 0
},
...
{
"date": "2016-09-09",
"salePrice": 20000,
"subPrice": 500,
"subRatio": 400,
"dayType": 0
}
]
}
]
}
}
查询产品实时房态
(hotel.goods.status)名称 | 描述 |
---|---|
功能 | 通过给定的酒店ID查询酒店可分销产品的实时信息,包括产品是否可售卖和平均价格 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.goods.status |
名称 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
hotelId | Long | 是 | 1234567 | 酒店ID。 |
checkinDate | String | 是 | 2017-01-11 | 入住日期,格式为yyyy-MM-dd,最早入住日期为当前日期。 |
checkoutDate | String | 是 | 2017-01-12 | 离店日期,格式为yyyy-MM-dd,与当前日期相差不能超过31天。 |
goodsType | Integer | 是 | 1 | 产品类型: 1 全日房 2 钟点房 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Long | 是 | 酒店ID。 |
goodsStatuses | Array<GoodsStatus > |
否 | 产品状态列表。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
goodsId | Long | 是 | 产品ID。 |
status | Integer | 是 | 产品状态: 0 满房 1 可预订 2 不可预订 3 不展示 |
goodsStatuses | Array<DayGoodsStatus > |
否 | 房态列表。 数量和checkinDate、checkoutDate范围对应 |
业务请求参数:
{
"hotelId": 52786813,
"checkinDate": "2017-01-11",
"checkoutDate": "2017-01-12",
"goodsType": 1
}
转化为字符串:
data="{\"hotelId\": 52786813,\"checkinDate\": \"2017-01-11\",\"checkoutDate\": \"2017-01-12\",\"goodsType\": 1}"
响应数据:
{
"code":0,
"message":"成功",
"partnerId":666,
"result":{
"hotelId":52786813,
"goodsStatuses":[
{
"goodsId":3870293,
"status":1,
"goodsStatuses":[
{
"date":"2018-03-08",
"status":1
},
{
"date":"2018-03-09",
"status":1
}
]
}
]
}
}
下单前校验
(hotel.order.check)名称 | 描述 |
---|---|
功能 | 分销商下单前调用此接口进行是否可预订校验、库存校验,校验成功时会返回最新价格。 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.order.check |
名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
hotelId | Integer | 是 | 分销平台酒店ID。 |
goodsId | Long | 是 | 分销平台产品ID。 |
checkinDate | String | 是 | 入住日期,格式为yyyy-MM-dd。 |
checkoutDate | String | 是 | 离店日期,格式为yyyy-MM-dd。 |
roomNum | Integer | 是 | 预订间数。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
code | Integer | 是 | 校验结果码: 0 校验成功 1 校验失败 2 黑名单酒店 3 房态不满足预订 4 三方产品不可售 5 产品不存在 6 产库存不足 |
desc | String | 否 | 校验失败原因描述 |
priceModels | Array<PriceModel > |
否 | 最新价格信息列表,校验成功会返回 |
业务请求参数:
{
"hotelId": 888,
"goodsId": 654321,
"checkInDate": "2016-10-01",
"checkOutDate": "2016-10-02",
"roomNum": 1,
}
转化为字符串:
data="{\"hotelId\":888,\"goodsId\":654321,\"checkInDate\":\"2016-10-01\",\"checkOutDate\":\"2016-10-02\",\"roomNum\":1,}"
响应数据:
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"code":0,
"desc":"校验成功",
"priceModels": [
{
"date": "2016-10-01",
"salePrice": 20000,
"subPrice": 500,
"subRatio": 400,
"dayType": 0
}
]
}
}
预约下单
(hotel.order.booking)名称 | 描述 |
---|---|
功能 | 进行下单预定酒店 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.order.booking |
注意
:
预订需要酒店商家进行确认
。 名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Long | 是 | 分销平台酒店ID。 |
goodsId | Long | 是 | 分销平台产品ID。 |
personNames | String | 是 | 入住人姓名列表,各姓名间以英文逗号分隔,如"陈振锋,Avril Lavigne"。 |
contactName | String | 是 | 联系人姓名。 |
contactPhone | String | 是 | 联系人电话号码。 |
arriveDate | String | 是 | 最晚到店时间,格式为yyyy-MM-dd HH:mm:ss。 |
checkinDate | String | 是 | 入住日期,格式为yyyy-MM-dd。 |
checkoutDate | String | 是 | 离店日期,格式为yyyy-MM-dd。 |
roomNum | Integer | 是 | 预订间数。 |
totalPrice | Integer | 是 | 订单总价,单位为分。总价=预订房间数x预定日期内房间单价。例如,4月1日入住,4月3日离店,预定2间房,则总价=2*(4月1日房价+4月2日房价) |
settlePrice | Integer | 是 | 结算价,单位为分。结算价=总价 - 分销商佣金 。 |
distributorOrderId | String | 是 | 分销商订单ID,非空 |
comment | String | 否 | 用户预约下单时填写的备注信息。 |
needInvoice | Integer | 是 | 是否需要美团开发票: 0 不需要 1 需要 |
invoice | Invoice | 否 | 发票信息,当needInvoice=1时必填。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
item | Integer | 是 | 发票项目: 1 房费 2 代订房费 3 代订住宿费 4 旅游费-酒店款 |
title | String | 否 | 发票抬头,当item=2或3时必需 |
kind | Integer | 是 | 发票类型: 2 增值税普通发票(纸质) 3 增值税普通发票(电子) 4 增值税专用发票(纸质) |
postage | Integer | 是 | 发票邮资,单位为分 |
contact | InvoiceContact |
是 | 联系信息 |
company | InvoiceCompany |
否 | 公司信息,当item=4时必需 |
memo | String | 否 | 备注 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
name | String | 否 | 联系人姓名,Invoice.item=2或4时必需 |
phone | String | 是 | 联系人手机号 |
String | 否 | 联系人邮箱,Invoice.item=3时必需 | |
province | String | 否 | 省,Invoice.item=2或4时必需 |
city | String | 否 | 城市,Invoice.item=2或4时必需 |
region | String | 否 | 区,Invoice.item=2或4时必需 |
address | String | 否 | 详细地址,Invoice.item=2或4时必需 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
name | String | 是 | 公司名称 |
taxId | String | 是 | 公司税号 |
address | String | 是 | 注册地址 |
phone | String | 是 | 公司电话 |
bankDeposit | String | 是 | 开户银行 |
bankAccount | String | 是 | 银行账号 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
distributorOrderId | String | 是 | 分销商订单ID。 |
mtOrderId | Long | 否 | 分销平台订单ID,预约下单成功时必传。 |
code | Integer | 是 | 下单结果码: 0 下单成功 1 系统繁忙,请稍后重试 2 产品已变价 3 重复订单, 对应下单失败 4 产品已售完,扣减库存失败 5 账户扣款失败 10 产品被拉黑, 不允许购买 20 其它 |
desc | String | 否 | 下单失败原因描述。 |
业务请求参数:
{
"hotelId": 888,
"goodsId": 654321,
"personNames": "张三,李四",
"contactName": "张三",
"contactPhone": "13716668888",
"arriveDate": "2016-10-01 18:30:00",
"checkInDate": "2016-10-01",
"checkOutDate": "2016-10-02",
"roomNum": 1,
"totalPrice": 20000,
"settlePrice": 19000,
"distributorOrderId": "vendorOrder001",
"comment": "请安排靠近楼梯的房间"
}
转化为字符串:
data="{\"hotelId\":888,\"goodsId\":654321,\"personNames\":\"张三,李四\",\"contactName\":\"张三\",\"contactPhone\":\"13716668888\",\"arriveDate\":\"2016-10-01 18:30:00\",\"checkInDate\":\"2016-10-01\",\"checkOutDate\":\"2016-10-02\",\"roomNum\":1,\"totalPrice\":20000,\"settlePrice\":19000,\"distributorOrderId\":\"vendorOrder001\",\"comment\":\"请安排靠近楼梯的房间\"}"
响应数据:
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"distributorOrderId": "vendorOrder001",
"mtOrderId": 123456,
"code":0,
"desc":"成功"
}
}
取消订单
(hotel.order.cancel)名称 | 描述 |
---|---|
功能 | 取消订单 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.order.cancel |
注意
:
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
distributorOrderId | String | 是 | 分销商订单ID。 |
mtOrderId | Long | 是 | 分销平台订单ID。 |
cancelReason | String | 是 | 取消原因文案,如“对酒店相关条件不满意”“价格过高”“通过其它途径预订”“行程变更”“已换酒店”“重单”“其它”等。 |
cancelCheck | Integer | 是 | 取消策略 0 正常取消 1 未确认预定尝试取消 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
distributorOrderId | String | 是 | 分销商订单ID。 |
mtOrderId | Long | 是 | 分销开放平台订单ID。 |
code | Integer | 是 | 取消订单返回码: 0 取消成功 1 系统繁忙 2 取消失败(超过最晚可取消时间;用户已入住等原因) 3 订单号不存在 4 取消失败,产品不允许取消 10 订单已经确认 20 其它 |
desc | String | 否 | 取消结果详细描述。 |
业务请求参数:
{
"distributorOrderId": "vendorOrder001",
"mtOrderId": 123456,
"cancelReason": "计划有变",
"cancelCheck": 0
}
转化为字符串:
data="{\"distributorOrderId\":\"vendorOrder001\",\"mtOrderId\":123456,\"cancelReason\":\"计划有变\",\"cancelCheck\":0}"
响应数据:
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"mtOrderId": 123456,
"distributorOrderId": "vendorOrder001",
"code": 0,
"desc": "取消成功"
}
}
查询订单
(hotel.order.query)名称 | 描述 |
---|---|
功能 | 查询订单详情 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.order.query |
注意
:
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
queryParams | Array<OrderQueryItem > |
是 | 查询订单参数。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
distributorOrderId | String | 是 | 分销商订单ID。 |
mtOrderId | Long | 是 | 分销平台订单ID。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
orderInfos | Array<OrderInfo > |
否 | 订单详情列表。 |
code | Integer | 是 | 查询结果码: 0 查询成功 1 系统繁忙,请稍后重试 2 查询订单号不存在 20 其它 |
desc | String | 否 | 描述。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
baseInfo | OrderBaseInfo |
是 | 订单基本信息。 |
aptInfo | OrderAptInfo |
是 | 预约单信息。 |
roomNights | Array<RoomNightInfo > |
是 | 间夜信息。 |
refundInfos | Array<OrderRefundInfo > |
否 | 退款信息 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
mtOrderId | Long | 是 | 分销平台订单ID。 |
goodsId | Integer | 是 | 产品ID。 |
totalPrice | Integer | 是 | 订单总价,单位为分。 |
settlePrice | Integer | 是 | 结算价,单位为分。 |
createTime | String | 是 | 预约下单时间,格式为yyyy-MM-dd HH:mm:ss。 |
orderStatus | Integer | 是 | 订单状态: 20 预定中 booking 21 预定成功 book_suc 22 预定失败 book_fail 30 取消中 canceling 31 取消成功 cancel_suc 32 取消失败 cancel_fail 40 已消费退款 abort(美团客服介入后才可能出现此状态) 50 已入住 book_checkin |
fixRoom | Boolean | 是 | 预留房设置: false 非预留房 true 预留房 |
goodsType | Integer | 是 | 产品类型: 1 全日房 2 钟点房 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
mtOrderId | Long | 是 | 分销平台订单ID。 |
checkinTime | String | 是 | 入住时间,格式为yyyy-MM-dd HH:mm:ss。 |
checkoutTime | String | 是 | 离店时间,格式为yyyy-MM-dd HH:mm:ss。 |
arriveTime | String | 是 | 到店时间,格式为yyyy-MM-dd HH:mm:ss。 |
comment | String | 否 | 用户预约单上填写的备注。 |
roomName | String | 是 | 房间名称。 |
roomId | Integer | 是 | 房间ID。 |
roomCount | Integer | 是 | 入住房间数量。 |
hotelId | Long | 是 | 酒店ID。 |
poiName | String | 是 | 酒店名称。 |
personNames | String | 是 | 入住人姓名列表,各姓名间以英文逗号分隔。 |
contactName | String | 是 | 联系人姓名。 |
contactPhone | String | 是 | 联系人电话号码。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
bizDate | String | 是 | 间夜日期,格式为yyyy-MM-dd。 |
appointmentStatus | Integer | 是 | 预约状态: 1040 商家拒绝 refuse 1050 接受预约 accept 1070 已取消 cancel 1090 美团客服取消 cancel_exception 1110 已消费或已入住 checkin |
payStatus | Integer | 是 | 支付状态: 2040 支付成功 pay_suc 2050 已退款 refund_suc |
sellPrice | Integer | 是 | 卖价单价,单位为分。 |
subPrice | Integer | 否 | 给分销商佣金,单位为分。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
refundId | Integer | 是 | 退款ID |
refundPrice | Integer | 是 | 退款金额(退给用户金额) |
refundSettlePrice | Integer | 是 | 退结算金额(退分销商金额) |
refundTime | String | 是 | 退款时间 |
业务请求参数:
{
"queryParams":[
{
"distributorOrderId": "vendorOrder001",
"mtOrderId": 123456
}
]
}
转化为字符串:
data="{\"queryParams\":[{\"distributorOrderId\":\"vendorOrder001\",\"mtOrderId\":123456}]}"
响应数据:
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"orderInfos": [
{
"baseInfo": {
"mtOrderId": 123456,
"goodsId": 654321,
"totalPrice": 20000,
"settlePrice": 19000,
"createTime": "2016-09-29 14:23:52",
"orderStatus": 20,
"goodsType": 1,
"fixRoom": false
},
"aptInfo": {
"mtOrderId": 123456,
"checkInTime": "2016-10-01 00:00:00",
"checkOutTime": "2016-10-02 00:00:00",
"arriveTime": "2016-10-01 18:30:00",
"comment": "请安排靠近楼梯的房间",
"roomName": "标间全日房",
"roomId": 1,
"roomCount": 1,
"hotelId": 6
}
}
],
"code": 0,
"desc": "成功"
}
}
酒店催单
(hotel.order.reminder)名称 | 描述 |
---|---|
功能 | 分销商催单 |
HTTP方法 | POST |
请求方 | 第三方渠道 |
响应方 | 商企通分销平台 |
method | hotel.order.reminder |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
mtOrderId | Long | 是 | 分销平台订单ID。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
mtOrderId | Long | 是 | 分销平台订单ID。 |
forcastConfirmTime | String | 否 | 催单预计反馈时间。 |
code | Integer | 是 | 催单结果码: 0 催单成功 1 系统繁忙,请稍后重试 2 催单失败,订单号不存在 3 催单失败,订单非预定中状态 4 催单时限内无法催单 5 已催单,无需重复催单 20 其它 |
desc | String | 是 | 催单结果描述。 |
业务请求参数:
{
"mtOrderId": 123456
}
转化为字符串:
data="{\"mtOrderId\":123456}"
响应数据:
{
"code": 0,
"message": "成功",
"partnerId": 666,
"result": {
"mtOrderId": 123456,
"createTime": "",
"code": 0,
"desc": "催单成功"
}
}
需要分销商将接收状态变更的URL地址提供给分销平台, 建议订单变更接口与其他接口分开, 原因是其他接口回调频次很高, 如果分销商系统处理能力跟不上, 容易导致订单状态变更同步不及时
订单状态变更通知
(hotel.order.status.change.callback)名称 | 描述 |
---|---|
功能 | 当订单状态发生变化时,分销平台将通过该接口把最新的订单状态通知给分销商 |
HTTP方法 | POST |
请求方 | 商企通分销平台 |
响应方 | 第三方渠道 |
method | hotel.order.status.change.callback |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
distributorOrderId | String | 是 | 分销商订单ID。 |
mtOrderId | Long | 是 | 分销平台订单ID。 |
orderStatus | Integer | 是 | 订单状态: 21 预订成功 book_suc 22 预订失败 book_fail 31 取消成功 cancel_suc 40 美团客服介入退款 abort 50 已入住 book_checkin |
desc | String | 是 | 订单状态文案描述。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
code | Integer | 是 | 订单状态变更通知接收情况: 0 接收成功 1 已接收但解析异常 |
message | String | 否 | 接收情况描述。 |
业务请求参数:
{
"distributorOrderId": "vendorOrder001",
"mtOrderId": 123456,
"orderStatus": 4
}
转化为字符串:
data="{\"distributorOrderId\":\"vendorOrder001\",\"mtOrderId\":123456,\"orderStatus\":4}"
响应数据:
{
"code": 0,
"message": "成功"
}
房态变更通知
(hotel.rs.change.callback)名称 | 描述 |
---|---|
功能 | 当房态发生变化时,分放平台将通过该接口把最新的房态变更通知推送给分销商 |
HTTP方法 | POST |
请求方 | 商企通分销平台 |
响应方 | 第三方渠道 |
method | hotel.rs.change.callback |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
rsList | Array<RS > |
否 | 酒店房态RS数组 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Integer | 是 | 酒店ID。 |
goodsId | Long | 是 | 酒店产品ID。 |
goodsStatuses | Array<DayGoodsStatus > |
否 | 房态变化列表 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
code | Integer | 是 | 房态变更通知接收情况: 0 接收成功 1 已接收但解析异常 |
message | String | 否 | 接收情况描述。 |
业务请求参数:
{
"rsList": [
{
"hotelId": 10000,
"goodsId": 123456,
"goodsStatuses": [
{
"date": "2017-06-11",
"status": 1
},
{
"date": "2017-06-16",
"status": 0
}
]
}
]
}
转化为字符串:
data="{\"rsList\":[{\"hotelId\":10000,\"goodsId\":123456,\"goodsStatues\":[{\"date\":\"2017-06-11\",\"status\":1},{\"date\":\"2017-06-16\",\"status\":0}]}]}"
响应数据:
{
"code": 0,
"message": "成功"
}
价格变更通知
(hotel.price.change.callback) 废弃
名称 | 描述 |
---|---|
功能 | 当产品价格发生变化时,分销平台将通过该接口把最新的价格通知给分销商 |
HTTP方法 | POST |
请求方 | 商企通分销平台 |
响应方 | 第三方渠道 |
method | hotel.price.change.callback |
注意
:
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
goodsPrices | Array<GoodsPrice > |
否 | 产品价格日历列表。 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
code | Integer | 是 | 接收情况: 0 接收成功 1 已接收但解析异常 |
message | String | 否 | 接收情况描述。 |
业务请求参数:
{
"goodsPrices": [
{
"goodsId": 5651829,
"hotelId": 123456,
"priceModels": [
{
"date": "2017-07-20",
"salePrice": 6000,
"subPrice": 360,
"subRatio": 600,
"dayType": 0
},
{
"date": "2017-07-21",
"salePrice": 6000,
"subPrice": 360,
"subRatio": 600,
"dayType": 0
},
{
"date": "2017-07-22",
"salePrice": 6000,
"subPrice": 360,
"subRatio": 600,
"dayType": 0
},
{
"date": "2017-07-23",
"salePrice": 5400,
"subPrice": 324,
"subRatio": 600,
"dayType": 0
}
]
}
]
}
RP变更通知
(hotel.rp.change.callback)名称 | 描述 |
---|---|
功能 | 当价格计划RP发生变化时,分销平台将通过该接口把最新的RP通知给分销商 |
HTTP方法 | POST |
请求方 | 商企通分销平台 |
响应方 | 第三方渠道 |
method | hotel.rp.change.callback |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
goods | Array<GoodsInfo > |
否 | 产品RP变化数组 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
code | Integer | 是 | 接收情况: 0 接收成功 1 已接收但解析异常 |
message | String | 否 | 接收情况描述。 |
酒店静态信息变更通知
(hotel.poi.change.callback)名称 | 描述 |
---|---|
功能 | 当酒店静态信息发生变化时,分销平台将通过该接口把发生变化的酒店ID通知给分销商 |
HTTP方法 | POST |
请求方 | 商企通分销平台 |
响应方 | 第三方渠道 |
method | hotel.poi.change.callback |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelList | Array<DetailChange > |
否 | 酒店静态信息变化数组 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
hotelId | Integer | 是 | 酒店ID。 |
type | Integer | 是 | 酒店信息变更类型: 1 信息变化 2 酒店下线 3 酒店上线 |
名称 | 类型 | 是否非空 | 说明 |
---|---|---|---|
code | Integer | 是 | 接收情况: 0 接收成功 1 已接收但解析异常 |
message | String | 否 | 接收情况描述。 |
设施名称 | 设施编号 |
---|---|
前台保险柜 | 101009 |
酒吧 | 101011 |
温泉 | 101013 |
垂钓 | 101014 |
采摘园 | 101015 |
沙滩 | 101016 |
海边娱乐设施 | 101017 |
儿童乐园 | 101018 |
棋牌室 | 101019 |
歌舞厅 | 101020 |
宴会厅 | 101021 |
桑拿浴室 | 101022 |
SPA | 101023 |
美容美发室 | 101024 |
按摩保健 | 101025 |
足浴/足疗 | 101026 |
ATM机 | 101027 |
健身中心 | 101028 |
卡拉OK | 101029 |
台球室 | 101030 |
会议室 | 101031 |
乒乓球室 | 101032 |
羽毛球场 | 101033 |
网球场 | 101034 |
保龄球馆 | 101035 |
壁球室 | 101036 |
电子游戏室 | 101037 |
中式餐厅 | 101092 |
西式餐厅 | 101093 |
日式餐厅 | 101094 |
茶室 | 101095 |
咖啡厅 | 101096 |
室内游泳池 | 101097 |
室外游泳池 | 101098 |
残疾人设施 | 101099 |
商务中心 | 101100 |
游戏室 | 101137 |
花园 | 101138 |
服务名称 | 服务编号 |
---|---|
停车场 | 101006 |
信用卡/银联卡收费 | 101007 |
叫醒服务 | 101038 |
洗衣服务 | 101039 |
送餐服务 | 101040 |
24小时前台接待服务 | 101041 |
旅游服务 | 101042 |
擦鞋服务 | 101044 |
行李寄存 | 101045 |
外币兑换 | 101047 |
专职行李员 | 101048 |
医疗支援 | 101049 |
接送机服务 | 101050 |
自行车租借 | 101051 |
多种语言服务人员 | 101052 |
雨伞租借服务 | 101053 |
租车服务 | 101101 |
叫车服务 | 101102 |
代订机票 | 101103 |
代订火车票 | 101104 |
看护小孩服务 | 101106 |
公共区域wifi | 101128 |
宠物携带 | 101135 |
泊车服务 | 101170 |
可加折叠床 | 101197 |
设施名称 | 设施编号 |
---|---|
拖鞋 | 101056 |
电吹风 | 101057 |
浴衣/浴袍 | 101058 |
浴缸 | 101059 |
空调 | 101060 |
DVD机 | 101063 |
电水壶 | 101064 |
小冰箱 | 101065 |
保险箱 | 101066 |
台式电脑 | 101067 |
迷你酒吧 | 101068 |
麻将桌 | 101070 |
写字台 | 101072 |
电话 | 101074 |
针线包 | 101075 |
电子称 | 101076 |
洗衣机 | 101077 |
厨房 | 101079 |
微波炉 | 101080 |
阳台 | 101081 |
熨斗 | 101107 |
熨衣板 | 101108 |
沙发 | 101109 |
座椅 | 101110 |
暖气 | 101112 |
24小时热水 | 101113 |
独立卫生间 | 101114 |
办公用品(笔、便签) | 101115 |
茶艺工具 | 101116 |
电视(卫星频道) | 101117 |
有线电视 | 101118 |
淋浴 | 101125 |
洗漱用具 | 101126 |
注:以下只列出常见床型类型和床型描述,美团床型类型和描述信息商家可以任意增删
床型类型 |
---|
单人床 |
大床 |
圆床 |
上下铺 |
方形水床 |
圆形水床 |
床型描述 |
---|
1.0m*2.0m |
1.2m*1.9m |
1.2m*2.0m |
1.5m*2.0m |
1.35m*2.0m |
1.5m*1.9m |
1.8m*2m |
2.0m*2.0m |
2.0m*2.2m |
直径2.0m |
直径2.2m |
直径2.4m |
直径2.6m |
直径2.8m |
上铺1.0m*2.0m 下铺1.35m*2.0m |
上铺1.0m*2.0m 下铺1.5m*2.0m |
上铺1.2m*2.0m 下铺1.5m*2.0 |