Skip to main content

酒店信息相关接口

获取酒店列表

说明:根据公司卡号信息,查询B2B渠道所有酒店ID

注:因门店每天都有新增或下线,建议每天同步一次酒店列表,新增或删除酒店

接口地址:hotel/getHotelList

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword

请求示例:

{
"cardId": "VCENTCRM0002220001",
"cardPassWord": "TestPassword"
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentList<HotelInfo]>酒店信息
HotelInfo:
参数名参数类型备注
hotelIdString酒店ID
hotelNameString酒店名称

返回示例:

{
"code": "200",
"message": "成功!",
"content": [
{
"hotelId": "0100513",
"hotelName": "全季呼和浩特市政府酒店"
}
]
}

获取酒店详情

说明:根据酒店ID查询酒店详情,仅支持一次查询一个酒店

:系统上线后,首次需落地所有B2B渠道酒店信息,之后每日根据获取的酒店列表中的酒店ID与本地库中酒店相匹配,判断新增或下线,更新酒店详情数据

接口地址: hotel/getHotelComplexList

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
hotelIdListList<String>酒店ID 一次最大支持查询1家酒店["2000014"]

请求示例:

{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"hotelIdList": ["2000014"]
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentList<HotelDetail>酒店信息
HotelDetail:
参数名参数类型备注
hotelIdString酒店ID
brandIdString品牌ID
brandCodeInt品牌code
brandNameString品牌名称
hotelNameString酒店名称
hotelNameEnString酒店名称英文
provinceNoString省ID
provinceNameString省名称
cityNoString城市ID
cityNameString城市名称
cityAreaString城市区域名称
countyNameString区县名称
countyNoString区县ID
nationNameString国家名称
nationNoString国家ID
hotelAddressString酒店地址
hotelAddressEnString酒店地址英文
hotelAddressTipString酒店地址提示
hotelTelephoneString电话
hotelFaxString酒店传真
zipCodeString邮政编码
roomNumInt客房数
hotelWordIntroduceString酒店介绍
longitudeString酒店经度 高德地图
latitudeString酒店纬度 高德地图
openingDateString营业日期
trialOpeningDateString试营业日期
operateScopeString经营性质
返回值:
1、内宾
2、内外宾
注:内外宾酒店支持外宾接待
operateScopeIdInt对客经营范围
返回值:1、2、3
1=仅大陆客人
2=全球客人
3=仅大陆及港澳台客人
isOpeningBoolean是否营业
hotelClassificationString酒店类别
scaleOfTaxpayerString纳税人性质 NONE:未知 GENERAL:一般纳税人 COMMON:小规模纳税人
companyPayTaxBigDecimal小规模纳税人的门店,下总对总的订单公司需要承担的税点
5.23:小规模纳税人的门店,选择开1%税率发票,公司需承担全部税点5.23
3.35:小规模纳税人的门店,选择开3%税率发票,公司需承担剩余税点3.35
null:非小规模纳税人门店,不需另外补税点
注:此字段仅针对华住管理的酒店资源
contactPositionString联系人职位
contactNameString联系人姓名
contactMobileString联系人手机
contactEmailString联系人邮箱
contactFaxString联系人邮箱
isInternationalBoolean是否国际酒店
true:是
false:否

1、中国内地酒店(不含港澳台酒店)
2、非中国内地酒店(包含港澳台酒店)
isSupportHuazhuBoolean是否支持华住会权益(返回true无需处理,返回false需提示客户此酒店不支持华住会权益)
hotelNoticeString酒店公告(比如酒店无餐厅,不支持早餐等信息)
overhaulTimeString大修时间
payAtHotelOnlyBoolean是否仅允许前台现付,仅针对非中国内地酒店(包含港澳台酒店)
true:是
false:否
businessTypeEnumSetList<String>支持的业务模式
CASH:现付,例如 :到门店付
COMPANY_ADVANCE:企业预付,例如:支付宝立即扣、中航结立即扣
CREDIT:信用,例如:担保金月结,担保金离店T+N扣款
:会返回1-3个枚举,如果某企业要支持信用模式,那么此字段必须包含“CREDIT”
guaranteeModeEnumSetList<String>支持的担保模式
NONE:无
FIRST_NIGHT:首晚担保
FULL_AMOUNT:全额担保
hotelRoomTypeListList<HotelRoomType>酒店房型信息
hotelServiceListList<HotelService>旧酒店设施信息(作废)
serviceListList<HotelServiceFacilityDTO>新酒店设施信息(新对接用此字段)
hotelPhotoListList<HotelPhoto>酒店照片
hotelConstructLevelListList<HotelConstructLevel>酒店营建信息
hotelSpecialServiceListList<HotelSpecialServiceDTO>客户拥有的单店特权
hotelBrandOuterLevelCodeString酒店档次Code
等级1:经济型
等级2:舒适型
等级3:高档型
等级4:豪华型
等级99:其他
hotelBrandOuterLevelNameString酒店档次名称
timeZoneString时区
timeOffsetInt时间偏移, 用于延退增加时间(如新疆地区)
whenBuiltString建造年份( 举例:2011 )
HotelRoomType:
参数名参数类型备注
roomTypeCodeString房型Code
roomTypeNameString房型Name
roomTypeNameEnString房型Name英文
roomNumInt房间数量
summaryString房间描述
hotelAreaInt最大面积
minRoomAreaInt最小面积
floorPlaceString楼层
bedTypeString床型
双人床,特大床,大床,单人床,沙发床,双床,多床,大床房,双床房
bedWidthString床宽
返回值:“2张2*1.8米床”
isADSLString是否可宽带上网
isADSLWifiString是否客房WIFI覆盖
isHasWindowString是否有窗
有窗、部分有窗、无窗、无窗
isCanAddBedString能否加床
hasSmokeFreeString无烟
maxCheckInPeoNumInt最多入住人数
roomTypePhotoUrlString房型图片URL
isHasWindowNewDescString返回示例:
返回1:“窗户可打开,且窗外是户外开放环境”
返回2:“部分房间窗户为内景窗”
返回3:“内景窗,位于走廊或过道”
返回4:“封闭窗,不可打开”
HotelServiceFacilityDTO :

酒店设施分类

参数名参数类型备注
typeNameString分类名称
typeCodeString分类code
typeIconString分类图标
itemListList<HotelServiceFacilityItemDTO>服务设施集合
HotelServiceFacilityItemDTO :
参数名参数类型备注
serviceCodeString设施code
serviceNameString设施名称
iconString图标
iconUrlString图标Url
cornerIconString角标
subListList<HotelServiceFacilitySubItemDTO>多套设施
HotelServiceFacilitySubItemDTO :
参数名参数类型备注
pictureListList<String>图片集合
describeString描述
subNameString子名称
morePropListList<HotelServiceFacilityItemMorePropDTO>更多信息
HotelServiceFacilityItemMorePropDTO :
参数名参数类型备注
nameString字段名称
valueString字段值
valueUnitString设施单位
HotelService :
参数名参数类型备注
childClassCodeInt设施Code
childClassNameString设施Name
childClassNameDescString设施描述
childClassTypeString设施类型
1:综合设施
2:服务项目
3:客房设施
4:餐饮设施
5:娱乐设施
isInsideBool设施在室内还是室外
isFreeBool设施是否免费
HotelPhoto:
参数名参数类型备注备注2
roomTypeCodeString房型Code酒店外部照片 ChildClassCode= 0 &RoomTypeCode = "" 酒店内部照片 ChildClassCode!= 0 & RoomTypeCode = "" 房型照片 RoomTypeCode = 对应房型Code
childClassCodeInt设施Code
roomNameString场所名称
roomDescString场所描述门头照、形象照-大、形象照-小、精选图片、地图、房型照、其他(公共区域、综合、服务、客房、餐饮、娱乐) 酒店列表页面建议展示“门头照”
photoURLList<String>图片URL(多个)
HotelConstructLevel:
参数名参数类型备注
constructLevelNoString酒店营建标准No
constructLevelNameString酒店营建标准Name
HotelSpecialServiceDTO:

说明:门店或者品牌愿意给高等级客户提供增值服务,如免费接驳,免费洗衣,欢迎水果,下午茶等,该对象提供输出门店给到指定客户服务标签

参数名参数类型备注
serviceIdString单店特权Id
serviceNameString单店特权名称
startTimeDate单店特权开始时间
endTimeDate单店特权结束时间
useRulesString使用规则
weekDisableDaysString每周禁用日 格式0101010,从周一开始,0:不禁用,1:禁用
disableDateListList<DisableDateDTO>禁用日期列表
serviceBookerIdListList<String>1、直连公司忽略此字段
2、TMC公司按照查询到的托管公司卡号展示给对应的托管公司
DisableDateDTO:
参数名参数类型备注
startTimeDate禁用开始时间
endTimeDate禁用结束时间

设施类型:

childClassType 设施类型说明childClassCode 设施Code说明childClassCode 设施Code说明
1综合设施1前台保险箱203微烤箱
1综合设施10POS机204电磁炉
1综合设施113Niiice café205洗烘一体机
1综合设施13大厅上网206智能马桶
1综合设施15商务休息区207胶囊咖啡机
1综合设施16传真打印21外币兑换
1综合设施17复印22邮政服务
1综合设施18商品销售3会议室
1综合设施19免费咖啡饮料5停车场
1综合设施20自动取款机6大堂wifi覆盖
1综合设施202开放式厨房8餐厅
2服务项目200同城行李寄送25行李寄存
2服务项目23自助洗衣26机场/火车站接送
2服务项目24叫醒服务7客衣送洗服务
3客房设施100手机开门34电水壶
3客房设施107浴缸35免费瓶装水
3客房设施108冰箱36拖鞋
3客房设施109音响37免费咖啡包
3客房设施110保险箱38免费茶包
3客房设施111Mini Bar39免费文具用品
3客房设施112按摩椅4宽带上网接口
3客房设施12电视40时钟/闹钟
3客房设施2电吹风41衣柜
3客房设施201空气净化器42备用床具
3客房设施27独立卫生间43浴室化妆放大镜
3客房设施2824小时热水44雨伞
3客房设施29分体式(中央)空调45收费电影
3客房设施30免费洗漱用品46欢迎礼品
3客房设施31国内长途电话47110V电压插座
3客房设施32国际长途电话48针线包
3客房设施33有线/卫星电视接收9客房Wifi覆盖
4餐饮设施49中餐厅55茶室
4餐饮设施50西餐厅56烧烤
4餐饮设施51日式餐厅57礼品廊
4餐饮设施52大堂吧58电梯/滚梯
4餐饮设施53酒吧59微波炉
4餐饮设施54咖啡厅60信用卡结算服务
5娱乐设施61免费网吧69迷你影院
5娱乐设施62免费台球70自行车出租
5娱乐设施63免费桌上足球71健身房
5娱乐设施64免费电玩72SPA
5娱乐设施65免费桌游73游泳池
5娱乐设施66酒吧74棋牌室
5娱乐设施67咖啡厅75按摩室
5娱乐设施68书吧76舞厅

返回示例:


{
"code": "200",
"message": "成功!",
"content": [
{
"hotelId": "2000014",
"hotelName": "汉庭上海人民广场酒店",
"hotelNameEn": "Hanting Hotel (Shanghai People's Square)",
"brandCode": 2,
"brandId": "0002",
"brandName": "汉庭",
"hotelAddress": "延安东路343号(8号线大世界站1号口出后沿西藏南路往北走至延安高架路右转直走350米)",
"hotelAddressEn": "No.343 Yan'an East Road, Shanghai, 200021, China",
"hotelAddressTip": "地铁8号线大世界站1号口,沿延安东路向东300米即达;距云南路美食街步行300米;南京路步行街丶人民广场丶外滩丶城隍庙丶蜡像馆15分钟;8号线4站直达",
"hotelWordIntroduce": "汉庭酒店上海人民广场店位于上海有灵魂之区美称的黄浦区。酒店距离地铁8号线大世界站步行仅8分钟,距离地铁1,2号线人民广场站步行仅10分钟,距离地铁10号线南京东路站步行仅10分钟。地铁2号线直连上海两大机场,至虹桥机场只需40分钟,浦东国际机场1小时。酒店位于上海著名的南京东路步行街和淮海路之间,距两地步行均只需要10分钟。外滩,豫园(城隍庙),人民广场,新天地,上海博物馆,上海大剧院近在咫尺,步行时间仅需15分钟。乘坐地铁1号线5站路至徐家汇站下便是繁华的徐家汇商圈,乘坐地铁2号线1站路至南京西路站下便是著名的梅龙镇广场(美国领事馆)和恒隆广场。酒店交通便捷,周边超市,餐饮,娱乐设施一应俱全,环境舒适典雅,是商务旅游人士住宿的明智之选。",
"hotelTelephone": "021-63288811",
"hotelFax": "63232217",
"hotelClassification": null,
"operateScope": "内宾",
"scaleOfTaxpayer": "GENERAL",
"provinceNo": "310000",
"provinceName": "上海市",
"cityNo": "310100",
"cityName": "上海市",
"cityArea": null,
"countyName": "青浦",
"countyNo": "310101",
"nationName": "中国",
"nationNo": "CN",
"longitude": "121.481460034847260",
"latitude": "31.230006850768724",
"zipCode": "200001",
"isOpening": true,
"openingDate": "2012-12-31 00:00:00",
"trialOpeningDate": "2012-12-31 00:00:00",
"roomNum": 169,
"contactPosition": null,
"contactName": null,
"contactMobile": "",
"contactEmail": "",
"contactFax": "63232217",
"businessTypeEnumSet": [
"CASH",
"COMPANY_ADVANCE",
"CREDIT"
],
"guaranteeModeEnumSet": [
"NONE",
"FIRST_NIGHT",
"FULL_AMOUNT"
],
"hotelRoomTypeList": [
{
"roomTypeCode": "DR1",
"roomTypeName": "大床房",
"roomTypeNameEn": "",
"roomNum": 14,
"summary": "",
"hotelArea": 17,
"floorPlace": "4-7",
"bedType": "大床房",
"bedWidth": "2张2*1.8米床",
"isADSL": "",
"isADSLWifi": "客房wifi",
"isHasWindow": "部分有窗",
"isCanAddBed": "不可加床",
"hasSmokeFree": "无烟处理",
"maxCheckInPeoNum": 2,
"roomTypePhotoUrl": "https://img.huazhu.com/cos/mdm/HN02000710/b0619944-4e8e-4129-b4f4-54b4bcb560a8/2021-09-10-16-56-03-699.jpg"
},
{
"roomTypeCode": "TR1",
"roomTypeName": "双床房",
"roomTypeNameEn": "",
"roomNum": 43,
"summary": "",
"hotelArea": 20,
"floorPlace": "1-7",
"bedType": "双床房",
"bedWidth": "2张2*1.8米床",
"isADSL": "",
"isADSLWifi": "客房wifi(部分)",
"isHasWindow": "部分有窗",
"isCanAddBed": "不可加床",
"hasSmokeFree": "无烟处理",
"maxCheckInPeoNum": 3,
"roomTypePhotoUrl": "https://img.huazhu.com/cos/mdm/HN02000710/4032f3d9-1021-48c8-b57e-6b5eae36bc10/2021-09-10-17-02-52-996.jpg"
}
],
"hotelServiceList": [
{
"childClassCode": 17,
"childClassName": "复印",
"childClassNameDesc": "",
"childClassType": "1",
"isInside": null,
"isFree": null
},
{
"childClassCode": 9,
"childClassName": "客房Wifi覆盖",
"childClassNameDesc": "",
"childClassType": "3",
"isInside": null,
"isFree": null
},
{
"childClassCode": 2,
"childClassName": "电吹风",
"childClassNameDesc": "",
"childClassType": "3",
"isInside": null,
"isFree": null
},
{
"childClassCode": 13,
"childClassName": "大厅上网",
"childClassNameDesc": "",
"childClassType": "1",
"isInside": null,
"isFree": null
}
],
"hotelPhotoList": [
{
"roomTypeCode": "DR1",
"childClassCode": 0,
"roomName": null,
"roomDesc": "房型照",
"photoURL": [
"https://img.huazhu.com/cos/mdm/HN02000710/b0619944-4e8e-4129-b4f4-54b4bcb560a8/2021-09-10-16-56-03-699.jpg",
"https://img.huazhu.com/cos/mdm/HN02000710/a9104687-333c-4930-92ec-930c95936876/2021-09-10-16-56-26-529.jpg"
]
},
{
"roomTypeCode": "",
"childClassCode": 8,
"roomName": null,
"roomDesc": "餐厅",
"photoURL": [
"https://img.huazhu.com/cos/mdm/HN02000710/bc3d9506-8f99-44ba-aebb-81a166b42b59/2021-05-23-19-01-35-525.jpg"
]
},
{
"roomTypeCode": "",
"childClassCode": 23,
"roomName": null,
"roomDesc": "洗衣房",
"photoURL": [
"http://img.huazhu.com/widget/mdm/HN02000710/24da0ac4-a536-4844-9dc7-d6862eaf06af/2019-10-10-11-59-09-321.jpeg"
]
}
],
"serviceList": [
{
"typeName": "公共区域",
"typeCode": "CONF_GGQY",
"typeIcon": "",
"itemList": [
{
"serviceCode": "WFbiaoq1ian01",
"serviceName": "01重点设施wf",
"icon": "",
"iconUrl": "https://test-res-pub.huazhu.com/hdata_hcube/1883f1622af3eed67f3ee0a3a6235247.jpeg",
"cornerIcon": "https://test-res-pub.huazhu.com/hdata_hcube/b34eecc7a0efbd33e727666db0a31d0a.png",
"subList": [
{
"pictureList": [
"https://test-res-pub.huazhu.com/hdata_hcube/1d485db2525152a6e708da25ddd18228.jpg",
"https://test-res-pub.huazhu.com/hdata_hcube/eb5132a73fdb9c73b3df70770997ec0c.jpg"
],
"describe": "补充说明补充说明补充说明补充说明补充说明补充说明补充说明",
"subName": "设施名称1",
"morePropList": [
{
"name": "会议室桌长",
"value": "11",
"valueUnit": "米"
},
{
"name": "会议室楼层",
"value": "11",
"valueUnit": "层"
}
]
},
{
"pictureList": [],
"describe": "",
"subName": "设施名称2",
"morePropList": [
{
"name": "会议室桌长",
"value": "8.8",
"valueUnit": "米"
},
{
"name": "会议室楼层",
"value": "8",
"valueUnit": "层"
}
]
}
]
}
]
}
],
"hotelConstructLevelList": [
{
"constructLevelNo": "0230",
"constructLevelName": null
}
]
}
],
"echoToken": "8715e67b-e0dc-477b-9321-3a783233018a"
}

图片放缩方法

接口会返回图片的url,图片尺寸很大。为了加快前端加载速度,华住提供图片放缩的功能,客户可以根据需要在我们提供的长款尺寸列表中选择。使用方法如下:

原图地址+可选尺寸+原图扩展名,如:示例图片

系统支持的‘宽-高’尺寸
'16-16', '32-15', '88-88',
'100-75', '110-80', '115-100', '120-120', '120-90', '127-107', '140-109', '150-128', '175-130', '190-160',
'200-150', '230-120', '250-220', '250-240', '265-265', '288-114',
'320-250', '320-100', '346-260',
'400-300', '480-360', '480-180',
'540-468',
'600-249', '640-480', '640-200', '640-500', '640-240', '660-265', '675-375', '675-375',
'795-450',
'800-600', '800-250',
'960-360',
'1002-185', '1024-768',
'3000-2250'

获取酒店房量房价

(获取酒店房量房价TMC专用接口请点击)

说明:酒店房价落地接口,直连企业通过该接口,每天可全量同步酒店房价数据落地, 仅支持一次查询一个酒店,一次最大支持查询1家酒店31天。

注:系统上线后,首次需落地90天房价信息,之后每日落地第91天房价信息

房价房量接口接入方案

  • 1、接入方每天不超过三次拉取全量房价房量,每次间隔建议6小时以上
  • 2、接入方每次拉取全量房价房量,时间范围是1-90天
  • 3、接入方使用验单接口发现房价房量变更,及时拉一次当前酒店的房价房量
  • 4、接入方可以接入房价房量变更通知接口,若有房量房价变更,华住商旅系统会及时通知

限流整改措施

  • 1、若监测到接入方收到整改通知后,依然存在频繁拉取房价房量,会做一定限流甚至关停IP处理

接口地址:/hotel/getRoomPrice

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
memberLevelListList<String>会员级别列表
企业会员
K:企业铂金 85含双早
C:企业金卡 88含双早
J: 企业玫瑰金88不含早
U: 92含双早
D: 企业银卡92不含早
O: 95含双早
T: 95不含早
个人会员
I:个人铂金会85含双早
B:个人金会员88含单早
A:个人银会员92不含早
P:个人星会员98不含早
如果不填则默认以公司卡号的会员等级去获取
注:
(1)TMC客户必填(根据自己实际需要的等级传参)
(2)直连可不传,不传时,默认只返回当前cardId对应等级的企业价格
checkInDateDate入住日期2020-03-06
checkOutDateDate离店日期2020-03-07
hotelIdListList<String>酒店列表 一次最大支持查询1家酒店["2000505"]
roomTypeListList<String>房型列表 不传默认取所有房型["DR"]
adultsPerRoomInteger一间房的入住人数,用于获取多人价(举例:一人价、两人价等);
入住人数:1-5,目前不支持大于5人(不涉及儿童数量,价格只根据成人数量计算,举例:两大一小,数量传2)
不传值,默认是2
注:针对非中国内地酒店(包含港澳台酒店)使用

请求示例:

{
"cardId": "VCENTCRM0002220001",
"cardPassWord": " TestPassword",
"memberLevelList": ["K","C"],
"checkInDate": "2020-05-20",
"checkOutDate": "2020-05-21",
"hotelIdList": [
"2000505"
]
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentList<RoomDTO>房量房价信息
RoomDTO:
参数名参数类型备注
hotelIdString酒店Id
roomRateListList<RoomRateDTO>房价码列表
RoomRateDTO:
参数名参数类型备注
rateCodeString房价码ID
注意事项:
1、在每个企业中单个酒店的同一个房价码ID会存在不同房型下面,同一个房型下不会出现重复房价码ID。
rateCodeNameString房价码名称
rateCodeDescriptionString房价码描述
checkInTypeListString入住类型
NONE 不限制
HOUR 按小时
DAY 按天
企业商旅目前只支持按天入住(DAY)
activityIdString活动ID
注意事项:
1、活动ID不为空即为活动房价码
2、连住活动房价码存在提前离店收取罚金
3、判断连住优惠活动规则:活动ID不为空,预订政策中minCheckInUnit天数大于1。
tagListList<String>1、门市价(RackRate):没有任何折扣的价格,一般性不输出;
2、会员价(Base):基于企业卡等级折扣的价格,比如企业卡等级是K,就是85折价格;
3、固定价(RFPNegotiation):某企业与某酒店的某个或多个房型签订的价格,比如A企业与A酒店大床房签订一段时间200元的价格;
4、活动价(Standard):一般性有两种折扣模式:一种是折上折模式,比如提前1天预订9折,就是在会员价基础上在打9折;一种是固定活动价格,比如固定400元;活动价上线前需要运营配置指定的企业;可判断activityId是否不为空,若不为空就是活动价。
5、单店协议价(Negotiation):某酒店与某企业签订的一种固定协议价格
priceDailyListList<PriceDailyDTO>每日价格
注意事项:
1、每日的总对总结算金额是按照每日税后价格计算的;
2、小规模纳税人每日总对总价格是每日税后价格*1.0523,保留两位小数,四舍五入。
roomCountDailyListList<RoomCountDailyDTO>每日房量
房价码返回为空的情况
1、此酒店已下架此房价码
2、没有匹配房价码的售卖规则(如连住时间、售卖时间等)
注意事项:一般性判断availableCount数量即可;若不可预定或者没房量,此字段都是0。
memberAndBreakFastListList<BreakFastDTO>会员和早餐 同时查询多个会员等级的房价码时会存在多个会员等级的早餐,请根据会员等级来匹配早餐数量
memberLevelsList<String>会员等级
bookInfoBookDTO预订政策
注意事项:通过预订政策判断活动房价码可预订时间范围,可入住时间范围以及是否需满足连住要求等。
举例:活连住动(活动ID13135),新春优惠-提前1天连住2晚折上9折
"minBookUnit":1---提前一天预订
"minCheckInUnit":2---连续预订两晚
"beginBookDate":"2024-01-31",--开始预订日期
"endBookDate":"2024-02-28"-----结束预订日期
"firstCheckInDate":"2024-02-01",-----开始入住日期
lastCheckOutDate":"2024-02-29"-----结束入住日期
条件今天是2月27日
场景1:2月27日-03月02日;不满足提前一天预订的条件,不满足3月1日入住条件,不能支持预订
场景2:2月28日-03月02日;3月1日的入住日期不满足在开始入住日期和结束入住日期范围内,不能支持预订
场景3:2月28日-03月01日;满足提前一天预订,2月28日和2月29日均在入住日期范围内,此场景可以支持预订
checkInInfoCheckInDTO入住政策
cancelInfoCancelDTO取消政策
(取消时间是代表酒店的当地时间)(若是海外酒店需要换算成北京时间,可以根据酒店详情中的时区换算)。
otherInfoOtherDTO其他政策
rfpCardIdListList<String>对于企业直连客户,房价码输出即可使用(此字段供TMC使用,直连客户可忽略)
activityControlInfoActivityControl对于企业直连客户,房价码输出即可使用(此字段供TMC使用,直连客户可忽略)
rateCodeControlRateCodeControl对于企业直连客户,房价码输出即可使用(此字段供TMC使用,直连客户可忽略)

使用华住商旅接口"/hotel/getRoomPrice"需要特别注意事项。

  1. 如果"memberLevelList"传入参数是多个等级的方式,出参时返回的房价码基于包含的不同数量早餐包需要做程序处理。 华住商旅目前会返回两种形式的房价码早餐包,字段是 "memberAndBreakFastList",如下:
  • a、返回一个房价码包含一个等级的早餐包 ,字段"memberAndBreakFastList",主要房价码是"企业会员价","企业会员折上折活动价";
  • b、返回一个房价码包含多个等级的早餐包 ,字段"memberAndBreakFastList",主要是房价码是"门市固定折扣价","RFP价格"; 如果遇到房价码中包含多个等级的早餐包,需要按照不同等级匹配一次房价码中的早餐包即可。
  1. 如果"memberLevelList"传入参数是一个等级的方式,出参时返回的房价码仅包含一个等级的早餐包,不需要二次处理。

第一、afterTaxPrice和companyToGroupPrice字段解释

  1. afterTaxPrice为含税价
  2. companyToGroupPrice为含税价+税点差额
    无论对客展示是显示afterTaxPrice还是显示companyToGroupPrice,验价接口和下单接口统一传afterTaxPrice。(见订单相关接口模式)

第二、“税点差额”解释

公司总对总订单情况中,由于存在小规模纳税人的酒店,导致华住总部开票和酒店开票之间存在税点差额,需要补额外税点费用。 税点差额计算方法:afterTaxPrice*0.0523(保留两位小数,第三位小数四舍五入) 因此业务上需判断税点差额由客人承担还是公司承担

  1. 由客人承担时并且订单是总对总订单,则将companyToGroupPrice显示给客人;
  2. 由公司承担时并且订单是总对总订单,则将afterTaxPrice显示给客人;
    特别地,由于现付订单(非总对总订单)从门店直接拿票,无需要补额外税点费用。因此现付订单前端显示afterTaxPrice即可。
PriceDailyDTO:
参数名参数类型备注
roomTypeIdString房型
bizDateDate营业日
currencyCodeString币种
CNY:人民币
EUR:Euro
AED:United Arab Emirates Dirham
AFN:Afghani
AMD:Armenian Dram
ANG:Netherlands Antillean Guilder
AOA:Kwanza
ARS:Argentine Peso
AZN:Azerbaijan Manat
BAM:Convertible Mark
BBD:Barbados Dollar
BDT:Taka
BGN:Bulgarian Lev
BHD:Bahraini Dinar
BIF:Burundi Franc
CHF:Swiss Franc
DKK:Danish Crones
DZD:Algerian Dinar
EGP:Egyptian Pound
HUF:Hungarian Forint
OMR:Omani Rial
QAR:Qatari Riyal
SAR:Saudi Riyal
SEK:Swedish Crones
TND:Tunisian Dinar
USD:United States Dollar
XCD:East Caribbean Dollar
GBP:Pound Sterling
marketPriceBigDecimal门市价
marketCNYPriceBigDecimal人民币门市价(含税价)
beforeTaxPriceBigDecimal税前价(净价)
beforeTaxCNYPriceBigDecimal人民币税前价(净价)
afterTaxPriceBigDecimal税后价(含税价)
afterTaxCNYPriceBigDecimal人民币税后价(含税价)
multiPersonInt一人价、两人价
companyToGroupPriceBigDecimal公司总对总价(含税价+税点差价)
companyToGroupCNYPriceBigDecimal人民币公司总对总价(含税价+税点差价)
isForbiddenBool是否禁用
isBlackBool房型是否黑名单

房价码返回为空的情况

  1. 此酒店已下架此房价码
  2. 没有匹配房价码的售卖规则(如连住时间、售卖时间等)
RoomCountDailyDTO:
参数名参数类型备注
roomTypeIdString房型
bizDateDate营业日
retainCountInt保留房量
shareCountInt共享房量
availableCountInt可售房量
isForbiddenBool是否禁用
isBlackBool房型是否黑名单
BreakFastDTO:
参数名参数类型备注
companySrcString公司来源
HUAZHU 华住
ACCOR 雅高
memberLevelString会员级别
breakfastCountIntbreakfastCount是指入住人的最大早餐份数
举例说明:
1、中国内地酒店(不含港澳台酒店):
a、若返回breakfastCount=1,则入住人只有1份早餐
b、若返回breakfastCount=2,则入住人最多2份早餐
2、非中国内地酒店(包含港澳台酒店):
a、预订1人价格,若返回breakfastCount=1,则入住人只有1份早餐
b、预订1人价格,若返回breakfastCount=2,则入住人只有1份早餐
c、预订2人价格,若返回breakfastCount=1,则入住人只有1份早餐
d、预订2人价格,若返回breakfastCount=2,则入住人最多2份早餐
BookDTO:
参数名参数类型备注
guaranteeModeString支持的担保模式
NONE:无
FIRST_NIGHT:首晚担保
FULL_AMOUNT:全额担保
1、到付和预付区别
a、guaranteeMode是NONE,则支持到店付或者预付
b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付
2、担保模式使用
a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式)
b活动价按照房价码担保模式,判断房量房价接口中的BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码;活动价下单时,验价及下单接口必须要传activityId,否则默认为会员价)
3、现付客户不能使用活动价注意事项
由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。
beginBookDateDate开始预订日期
endBookDateDate结束预订日期
bookUnitString提前预订单位
NONE 不限制
HOUR 按小时
DAY 按天
minBookUnitInt最小提前多久预订,如果bookUnit是小时就是从24点倒推
maxBookUnitInt最大提前多久预订
firstCheckInDateDate开始入住日期
lastCheckOutDateDate结束入住日期
checkInUnitString连续入住单位
NONE 不限制
HOUR 按小时
DAY 按天
minCheckInUnitInt最小连续入住
maxCheckInUnitInt最大连续入住
bookDescString预订说明

注:
仅支持当日预订
minBookUnit(最小提前预订):等于0
maxBookUnit(最大提前预订):等于0

CheckInDTO:
参数名参数类型备注
isOneSelfBool是否必须本人本卡
checkInDescString入住说明
CancelDTO:
参数名参数类型备注
isCanCancelBool是否可取消
lastCancelDayInt最晚取消天
"lastCancelDay": 0,表示当天
"lastCancelDay": 1,入住日前一天
"lastCancelDay": 2,入住日前两天
以此类推(在允许时间范围内可以支持免费取消)
lastCancelTimeString预付最晚取消时间(当天时间)
若是海外酒店则是当地时间,可根据酒店详情中时区timeZone字段换算。
cancelDescString取消说明
OtherDTO:
参数名参数类型备注
isPromotionCodeCanBookBool是否必须使用促销券码才能预订
isCanUseCouponBool是否支持优惠券
otherDesclastCancelTimeString其他说明
ActivityControl:
参数名参数类型备注
activityIdcode活动ID
controlTypeControlType管控类型
BLACK 黑名单
WHITE 白名单

黑白名单不会同时返回
controlListList<String>管控列表 存储管控的卡号
RateCodeControl:
参数名参数类型备注
controlTypeControlType管控类型
WHITE 白名单
controlListList<String>管控列表 存储管控的卡号

返回示例:

{
"code": "200",
"message": "成功!",
"content": [
{
"hotelId": "2000014",
"roomRateList": [
{
"rateCode": "RFP-558-3-2",
"rateCodeName": "企业尊享价",
"rateCodeDescription": null,
"checkInTypeList": [
"DAY"
],
"activityId": null,
"tagList": [
"RFPContract"
],
"priceDailyList": [
{
"roomTypeId": "TR1",
"bizDate": "2022-12-01",
"currencyCode": "CNY",
"marketPrice": 549,
"beforeTaxPrice": 558,
"afterTaxPrice": 558,
"multiPerson": null,
"companyToGroupPrice": 558,
"marketCNYPrice": 549,
"beforeTaxCNYPrice": 558,
"afterTaxCNYPrice": 558,
"companyToGroupCNYPrice": 558,
"isForbidden": false,
"isBlack": false
}
],
"roomCountDailyList": [
{
"roomTypeId": "TR1",
"bizDate": "2022-12-01",
"retainCount": 0,
"shareCount": 22,
"availableCount": 22,
"isForbidden": false,
"isBlack": false
}
],
"memberAndBreakFastList": [
{
"companySrc": "HUAZHU",
"memberLevel": "C",
"breakfastCount": 2,
"breakFastExt": null
},
{
"companySrc": "HUAZHU",
"memberLevel": "D",
"breakfastCount": 2,
"breakFastExt": null
},
{
"companySrc": "HUAZHU",
"memberLevel": "T",
"breakfastCount": 2,
"breakFastExt": null
},
{
"companySrc": "HUAZHU",
"memberLevel": "U",
"breakfastCount": 2,
"breakFastExt": null
},
{
"companySrc": "HUAZHU",
"memberLevel": "J",
"breakfastCount": 2,
"breakFastExt": null
},
{
"companySrc": "HUAZHU",
"memberLevel": "K",
"breakfastCount": 2,
"breakFastExt": null
},
{
"companySrc": "HUAZHU",
"memberLevel": "L",
"breakfastCount": 2,
"breakFastExt": null
},
{
"companySrc": "HUAZHU",
"memberLevel": "O",
"breakfastCount": 2,
"breakFastExt": null
}
],
"memberLevels": [
"C",
"D",
"J",
"K",
"L",
"O",
"T",
"U"
],
"bookInfo": {
"guaranteeMode": "NONE",
"beginBookDate": "2021-11-22",
"endBookDate": "2023-12-31",
"bookUnit": "DAY",
"minBookUnit": 0,
"maxBookUnit": 999,
"firstCheckInDate": "2021-11-22",
"lastCheckOutDate": "2023-12-31",
"checkInUnit": "DAY",
"minCheckInUnit": 1,
"maxCheckInUnit": 9999,
"bookDesc": "预订说明:担保方式:NONE,预订日期范围(开始日期:2021-11-22,结束日期:2023-12-31),提前预订单位:DAY,最小提前预订:0 (0表示无限制),最大提交预订:999 (9999表示无限制),最早入住日期:2021-11-22,最晚离店日期:2023-12-31,连续入住单位:DAY,最小连续入住1 (0表示无限制),最大连续入住:9999 (9999表示无限制)"
},
"checkInInfo": {
"isOneSelf": false,
"checkInDesc": "入住说明:是否必须本人本卡:否"
},
"cancelInfo": {
"isCanCancel": true,
"lastCancelDay": 0,
"lastCancelTime": "18:00:00",
"cancelDesc": "取消说明:是否可取消:是,最晚取消天:0最晚取消时间:18:00:00"
},
"otherInfo": {
"isPromotionCodeCanBook": false,
"isCanUseCoupon": false,
"otherDesc": "其他说明:是否必须使用促销券码才能预订:否,是否支持优惠券:否,"
},
"rfpCardIdList": [
"VCENTCRM0002224829"
],
"RateCodeControl":{
"controlType":"WHITE",
"controlList":[
"VCENTCRM0002221024","VCENTCRM0002221025"
]
},
"activityControlInfo": null
}
]
}
],
"echoToken": "34ca3ea1-8864-4ff1-b229-bd7cd65a7bb9"
}

酒店房价变更消息推送(回调接口)

说明:

B2B渠道酒店房价产生变化后,会及时将房价变化的酒店信息推送给企业,企业接收到酒店信息后,可通过获取房价接口,及时更新房价信息,确保房价信息及时、准确。

注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容

对接房价变化消息推送,企业需提供通知接口,通知接口标准参数定义见下:

请求方式:POST

HttpHeaders增加参数验证:

time:取系统当前时间,格式:yyyy-MM-dd HH:mm:ss

sign:客户的Secret + time,MD5加密

客户接收数据时,自行验签:拿到请求头中的time和自己公司的Secret,MD5加密,生成sign1,比较sign和sign1

sign1 = MD5Utils.encodeMD5(String.format("%s%s", 客户的Secret, time));

请求参数说明:
参数名参数类型备注是否必填示例值
modifyTimeDate修改时间2019-09-20 18:35:32
hotelIdString酒店ID2000011
roomTypeIdString房型PK1
注:无值时代表全部房型
startDateDate开始日期2020-01-20
endDateDate结束日期2020-01-25
flagInfoString标识(活动ID)
请求参数示例
{
"modifyTime":"2023-02-27 17:35:32",
"hotelId":"9000730",
"roomTypeId":"PK1",
"startDate":"2023-02-27",
"endDate":"2023-02-28"
}
返回参数说明
参数名参数类型备注
codecode响应码 200 成功,其他为失败
messageString响应消息
返回示例
{
"code": "200",
"message": "成功!"
}

酒店房量预警消息推送(回调接口)

说明:

B2B渠道酒店剩余房量<=3时,会及时将房量预警的酒店信息推送给企业,企业接收到酒店信息后,可通过获取房量接口,及时更新房量信息,确保房量信息及时、准确。

注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容

对接房量预警消息推送,企业需提供通知接口,通知接口标准参数定义见下:

请求方式:POST

HttpHeaders增加参数验证:

time:取系统当前时间,格式:yyyy-MM-dd HH:mm:ss

sign:客户的Secret + time,MD5加密

客户接收数据时,自行验签:拿到请求头中的time和自己公司的Secret,MD5加密,生成sign1,比较sign和sign1

sign1 = MD5Utils.encodeMD5(String.format("%s%s", 客户的Secret, time));

请求参数说明:
参数名参数类型备注是否必填示例值
modifyTimeDate修改时间2019-09-20 18:35:32
hotelIdString酒店ID2000011
roomTypeIdString房型PK1
注:无值时代表全部房型
startDateDate开始日期2020-01-20
endDateDate结束日期2020-01-25
flagInfoString标识(活动ID)
请求参数示例
{
"modifyTime": "2019-09-20 18:35:32",
"hotelId": "2000011",
"roomTypeId": "PK1",
"startDate": "2020-01-20",
"endDate": "2020-01-25",
"flagInfo": ""
}
返回参数说明
参数名参数类型备注
codecode响应码 200 成功,其他为失败
messageString响应消息

客户获取行政区

说明:根据公司卡号信息及行政区代码,查询此行政区下的子行政区

注:客户根据自身系统需要,自行评估是否需要对接

接口地址:region/getRegionInfo

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
regionCodeString行政区代码01
注:01是顶级行政区代码,代表中国
请求示例:
{
"cardId": "VCENTCRM0002220001",
"cardPassWord": "TestPassword",
"regionCode": "TW1000"
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentRegionDTO行政区信息
RegionDTO:
参数名参数类型备注
regionCodeString行政区Code
regionNameString行政区名
regionNameEnString行政区英文名
regionZhSpellString行政区全拼
regionZhShortSpellString行政区简拼
regionLevelString行政区级别
ROOT:根
COUNTRY:国家
CITY:城市
DISTRICT:区县
isDomesticBool是否国内城市
regionSortIndexInt行政区下标
isHotBool是否热点行政区
groupCodeString所属组(首字母大写)
latString行政区经度
lngString行政区纬度
childNodesList<RegionDTO>子行政区
返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"regionCode": "TW1000",
"regionName": "台北",
"regionNameEn": "TAIBEISHI",
"regionZhSpell": "TAIBEISHI",
"regionZhShortSpell": "TBS",
"regionLevel": "CITY",
"isDomestic": true,
"regionSortIndex": 890,
"isHot": false,
"groupCode": "T",
"lat": "0.0",
"lng": "0.0",
"childNodes": [
{
"regionCode": "TW1008",
"regionName": "大安区",
"regionNameEn": "DAANQU",
"regionZhSpell": "DAANQU",
"regionZhShortSpell": "DAQ",
"regionLevel": "DISTRICT",
"isDomestic": true,
"regionSortIndex": 1152,
"isHot": false,
"groupCode": "D",
"lat": "0.0",
"lng": "0.0",
"childNodes": []
},
{
"regionCode": "TW1007",
"regionName": "松山区",
"regionNameEn": "SONGSHANQU",
"regionZhSpell": "SONGSHANQU",
"regionZhShortSpell": "SSQ",
"regionLevel": "DISTRICT",
"isDomestic": true,
"regionSortIndex": 1213,
"isHot": false,
"groupCode": "S",
"lat": "0.0",
"lng": "0.0",
"childNodes": []
},
{
"regionCode": "TW1006",
"regionName": "中山区",
"regionNameEn": "ZHONGSHANQU",
"regionZhSpell": "ZHONGSHANQU",
"regionZhShortSpell": "ZSQ",
"regionLevel": "DISTRICT",
"isDomestic": true,
"regionSortIndex": 1420,
"isHot": false,
"groupCode": "Z",
"lat": "0.0",
"lng": "0.0",
"childNodes": []
}
]
},
"echoToken": "c9063c70-baa4-494e-b7ee-1795fb465988"
}

获取活动价规则

说明:获取所有活动价及规则

接口地址:hotel/getActivityRuleList

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
请求示例:
{
"cardId": "VCENTCRM0002220001",
"cardPassWord": "TestPassword"
}
返回参数说明:
参数名参数类型备注
codecode状态码 200 成功!
messageString响应消息
contentList<ActivityRuleDTO>活动规则信息
ActivityRuleDTO
参数名参数类型备注
activityIdString活动id
activityNameString活动名称
bookingStartDateString预订开始日期 yyyy-MM-dd
bookingEndDateString预订结束日期(包含) yyyy-MM-dd
bookingStartTimeString开始售卖时间 HH:mm
bookingEndTimeString结束售卖时间 HH:mm
bookingWeeklyControlString预订周禁用日 首位指周日,1 可以用 0 禁用
bookingExcludeDateListList<String>预订禁用日期
checkinStartDateString入住开始日期 yyyy-MM-dd
checkinEndDateString入住结束日期 yyyy-MM-dd
checkinWeeklyControlString入住周禁用日 首位指周日,1 可以用 0 禁用
checkinExcludeDateListList<String>入住禁用日期
minLosInteger最小连住天数
maxLosInteger最大连住天数
minAdvanceBookingInteger最小提前预订天数
maxAdvanceBookingInteger最大提前预订天数
cancelPolicyTypeString取消规则设置类型
1000无法取消
1001自由取消
1002罚金取消
1003某时间段后不可取消
cancelPenaltySettingsString取消罚金设置类型
1000永久收取罚金
1001罚金按照设定时间收取
cancelBookingDayInteger取消期天数 (
当cancelPolicyType为1002罚金取消且罚金按设定时间收取时
1003某时间段后不可取消时有效 )
cancelBookingTimeString取消期时间 HH:mm (
当cancelPolicyType为1002罚金取消且罚金按设定时间收取时
1003某时间段后不可取消时有效)
guaranteePolicyTypeString担保规则类型
1000现付
1001担保
1002预付
holdReservationTimeString现付最晚保留时间 HH:mm (当guaranteePolicyType担保规则类型为1000现付时有效)
ratecodeList<String>房价码,调房价码接口查询
controlTypeString管控类型 black 黑名单 white白名单
controlListList<String>管控列表 存储管控的卡号
返回示例:
{
"code": "200",
"message": "成功!",
"content": [
{
"activityId": "310023",
"activityName": "测试白名单",
"bookingStartDate": "2021-12-21",
"bookingEndDate": "2023-12-31",
"bookingStartTime": "00:00",
"bookingEndTime": "23:59",
"bookingWeeklyControl": "1111111",
"bookingExcludeDateList": null,
"checkinStartDate": "2021-12-21",
"checkinEndDate": "2023-12-31",
"checkinWeeklyControl": "1111111",
"checkinExcludeDateList": null,
"minLos": 1,
"maxLos": 365,
"minAdvanceBooking": 0,
"maxAdvanceBooking": 365,
"cancelPolicyType": "1000",
"cancelPenaltySettings": null,
"cancelBookingDay": null,
"cancelBookingTime": null,
"guaranteePolicyType": "1002",
"holdReservationTime": null,
"rateCodeList": [
"310023-RACK",
"310023-Base-OCK-STD-NBF"
],
"controlType": "white",
"controlList": ["cardId1","cardId2"]
},
{
"activityId": "66777",
"activityName": "全渠道新促销测试",
"bookingStartDate": "2022-12-03",
"bookingEndDate": "2023-03-31",
"bookingStartTime": "00:00",
"bookingEndTime": "23:59",
"bookingWeeklyControl": "1111111",
"bookingExcludeDateList": null,
"checkinStartDate": "2022-12-03",
"checkinEndDate": "2023-03-31",
"checkinWeeklyControl": "1111111",
"checkinExcludeDateList": null,
"minLos": 1,
"maxLos": 365,
"minAdvanceBooking": 0,
"maxAdvanceBooking": 365,
"cancelPolicyType": "1002",
"cancelPenaltySettings": "1000",
"cancelBookingDay": null,
"cancelBookingTime": null,
"guaranteePolicyType": "1002",
"holdReservationTime": null,
"rateCodeList": [
"PRO04c"
],
"controlType": "black",
"controlList": ["cardId1","cardId2"]
}
],
"echoToken": "01c604cf-363e-4f3d-a94d-c7c570ea85c0"
}