# 接入环境

# 接入地址

测试环境:

https://bizxxxx.com/proxy/ms-corp-directly-connect/

生产环境:

https://bizxxxx.com/proxy/ms-corp-directly-connect/

# 数据格式

接入方可以使用HTTP头来指定请求和响应数据格式,如下表所示(其它接口)

数据格式 HTTP头设置
json Content-Type: application/json
json accept: application/json

# 协议

  • 协议定义

协议:HTTP

提交方式:get/post

字符编码:UTF-8

  • 消息结构

消息由消息头(Header)及消息体(Body)组成

  • 消息头格式

头格式:fizz-appid = appId

timestamp = timestamp(当前时间,跟系统相差不超过10分钟)

sign = token

例:

fizz-appid: fefedfdv-dcd5-40be-ba62-51c5848fadc1(例)

timestamp: 1540281144468

sign: token

  • Token生成方式

Token = DigestUtils.sha256Hex((appId + "-" + timestamp + '-' + key).getBytes(Charset.forName("UTF-8")));

签名失败返回:custom auth reject

# 接口接入事例

curl --location --request POST 'https://bizxxxx.com/proxy/ms-corp-directly-connect/proxy/ms-corp-directly-connect/hotel/getHotelInfo' \

--header 'Content-Type: application/json' \

--header 'timestamp: 1611564121949' \

--header 'sign: a65e320ce4555cc0d70f1b1f5b2daa0909a5c9bceee3ceac3bfbb518b595fcac' \

--header 'fizz-appid: fefedfdv-dcd5-40be-ba62-51c5848fadc1' \

--data-raw '{"innId":"128"}'

上面只是示列,注意替换 fizz-appid sign timestamp

# 品牌列表接口

# 品牌列表信息查询(企业直连专用)

[接口位置] /brand/getBrandList

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
languageCode int 语言类型(0 中文 1 英文),默认0,类型可扩展
brandCode string 品牌唯一编号

返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
msgCode int 返回结果Code,0为正常
message string 错误信息
result Object 品牌信息列表

result返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
brand List<BrandData> 品牌唯一编号

BrandData返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
brandCode String 品牌唯一编号
brandType int 品牌类型(0 自有品牌 1 合作品牌)
description String 品牌描述(富文档)
brandName String 品牌名字

请求和返回json样例

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"brand": [{
			"brandCode": "4",
			"brandType": 1,
			"description": "铂涛集团-IU酒店-test",
			"brandName": "IU酒店"
		}, {
			"brandCode": "106",
			"brandType": 2,
			"description": "铂涛集团-希岸·轻雅酒店",
			"brandName": "希岸·轻雅"
		}, {
			"brandCode": "91",
			"brandType": 2,
			"description": "铂涛集团-喆啡酒店",
			"brandName": "喆啡"
		}, {
			"brandCode": "92",
			"brandType": 2,
			"description": "铂涛集团-ZMAX潮漫酒店",
			"brandName": "ZMAX潮漫"
		}, {
			"brandCode": "5",
			"brandType": 1,
			"description": "铂涛集团- 派酒店",
			"brandName": "派酒店"
		}, {
			"brandCode": "6",
			"brandType": 1,
			"description": "铂涛集团- 全新7天酒店",
			"brandName": "全新7天"
		}, {
			"brandCode": "98",
			"brandType": 2,
			"description": "铂涛集团-希尔顿欢朋酒店",
			"brandName": "希尔顿欢朋"
		}, {
			"brandCode": "2",
			"brandType": 1,
			"description": "铂涛集团-7天优品",
			"brandName": "7天优品"
		}, {
			"brandCode": "90",
			"brandType": 2,
			"description": "铂涛集团-麗枫酒店",
			"brandName": "麗枫"
		}, {
			"brandCode": "138",
			"brandType": 0,
			"description": "铂涛集团-希岸DELUXE",
			"brandName": "希岸DELUXE"
		}, {
			"brandCode": "96",
			"brandType": 2,
			"description": "铂涛集团-希岸酒店",
			"brandName": "希岸"
		}, {
			"brandCode": "3",
			"brandType": 0,
			"description": "铂涛集团-7天阳光",
			"brandName": "7天阳光"
		}, {
			"brandCode": "1",
			"brandType": 1,
			"description": "铂涛集团-7天酒店",
			"brandName": "7天酒店"
		}, {
			"brandCode": "102",
			"brandType": 2,
			"description": "铂涛集团-城品酒店",
			"brandName": "非繁城品"
		}, {
			"brandCode": "100",
			"brandType": 1,
			"description": "铂涛集团-窝趣",
			"brandName": "窝趣"
		}]
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

# 酒店接口

# 酒店列表信息接口(企业直连专用)

[接口位置] /hotel/getHotelIds

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
pageNum int 当前页码,默认为1
pageSize int 页面记录数量,默认10,最大1000

返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
msgCode int 返回结果Code,0为正常
message String 错误信息
result Object 酒店基础信息列表

result返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
pageNum int 页码,从1开始
pageSize int 页面大小
total long 总数
pages int 总页数
list List<HotelInfoData> 酒店id列表

HotelInfoData返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
innId String 酒店唯一编号

请求和返回json样例

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"pageNum": 1,
		"pageSize": 10,
		"total": 4372,
		"pages": 438,
		"list": [{
			"innId": "100"
		}]
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 酒店基本信息接口(企业直连专用)

[接口位置] /hotel/getHotelInfo

注释事项:

酒店是否售卖,必须满足status=1开业并且bookFlag=1可预订

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
languageCode int 语言类型(0 中文 1 英文),默认0,类型可扩展
innId string 酒店唯一编号

返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
msgCode int 返回结果Code,0为正常
message String 错误信息
result Object 酒店基础信息

result返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
innId String 酒店唯一编号
innName String 酒店名称
innShortName String 酒店短名称
innNamePinYin String 酒店名称全拼
address String 酒店地址
businessType int 经营类别(0 自营店 1 管理店 2 加盟店 3 标准店 4 合作店)
status int 酒店状态(-1 开发 0 筹建中 1开业 2开业后退筹建 3 开业后解约 5 下线整改 6 售出未下线)
innType int 酒店类别(100经济型酒店 101 精品商务酒店102 景区度假酒店 103 主题特色酒店 104 民族风情酒店)
starType int 星级类别(0 一星 1 二星 2 三星 3 四星 4五星 -1无星)(已废弃)
cityCode String 城市编号
cityName String 城市名称
brandCode String 品牌编号
innPhone String 酒店电话
innEmail String 酒店邮箱
bookFlag Int 是否支持预订(1 是 0 否)
valid Int 是否有效(1 是 0 否)
openDate Long 开业时间
closeDate Long 停业时间(Null为没有停业,尚营业中)
description String 描述信息(富文本)
sourceType String 酒店来源
mapInfo List<MapDataResponse> 酒店地图坐标信息
supportForeignGuest Integer 1、可接待外宾 0 不可接待外宾 可以为空
restaurant int 1有餐厅 0 无餐厅
invoiceType List<Integer> 发票类型列表, 1 普通发票,0 无,2 增值税普通发票,3 增值税专用发票,4 电子增值税普通发票

MapDataResponse返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
lag double 纬度
lng double 经度
mapType int 坐标类型(0 百度 1 Google 2 腾讯 3 高德)

请求和返回json样例

请求

{"innId":"451"}
1

返回:

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"pageNum": 1,
		"pageSize": 10,
		"total": 0,
		"pages": 1,
		"innId": "451",
		"innName": "7天广州琶洲店",
		"innShortName": "7天广州琶洲店",
		"innNamePinYin": "TianGuangZhouPaZhouDian",
		"address": "广州市海珠区新港东路6-10号(二层自编1号)201、六至九层",
		"businessType": 1,
		"status": 1,
		"innType": 0,
		"starType": -1,
		"cityCode": "AR00252",
		"cityName": "广州",
		"brandCode": "1",
		"innPhone": "020-56325689,110,112,119",
		"innEmail": null,
		"bookFlag": 1,
		"valid": 1,
		"restaurant": 1,
		"openDate": 1269964800000,
		"closeDate": null,
		"description": "第119届广交会火热预订中!距离琶洲展馆最近的分店!本店位于赤岗地铁站D2出口斜对面,无论是参加展会或是出差旅游度假交通路线非常方便。酒店房间只在6-8层(其他楼层非我酒店客房),可观中国第一、世界第三的旅游观光塔-广州塔。周边餐饮,娱乐,银行,医院等配套设施齐全。步行到赤岗地铁站及磨碟沙地铁站只需5分钟,自驾或打的在店门口直接东行3分钟到达琶洲展馆,到长隆水上乐园,长隆动物园坐地铁只有5个站。向西50米即有猎德大桥横跨珠江,直达天河商业圈、珠江新城,交通极为便利。本店全店同仁期待您的光临!(酒店大堂和电梯入口在速8酒店大堂内进可见)",
		"sourceType": "7days",
		"mapInfo": [],
		"supportForeignGuest": 1
	},
	"errors": null
} 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

# 酒店相册图片接口(企业直连专用)

[接口位置] /hotel/getHotelImage

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
innId string 酒店唯一编号

返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
msgCode int 返回结果Code,0为正常
message String 错误信息
result Object 酒店图片列表

result返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
imageDatas List<ImageData> 返回结果Code,0为正常

imageData返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
imageType Int 图片类型:1 酒店图片 2 客房图片 3 酒店外观 4 酒店大堂 5 酒店娱乐设施 6酒店餐饮设施 7酒店服务设施 8酒店休闲设施 9其他 10公共区域 11周边景点
uploadFileName String 图片上传文件名称
imageUrl String 图片访问地址
sizeType Int 1小图120*120;2 640*480
master Int 1主图
roomTypeCode String 房型
imageDes String 图片说明

请求和返回json样例

请求

{"innId":"289"} 
1

返回

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"imageDatas": [{
			"imageType": 2,
			"uploadFileName": "23247351_1373611992225.jpg",
			"imageUrl": "http://10.237.151.62:8080/images/inn/17j03Uiyv9",
			"sizeType": 2,
			"master": 0,
			"roomTypeCode": "230",
			"imageDes": ""
		}, {
			"imageType": 2,
			"uploadFileName": "23247351_1373611992225.jpg",
			"imageUrl": "http://10.237.151.62:8080/images/inn/17j08MKwLU",
			"sizeType": 2,
			"master": 0,
			"roomTypeCode": "196",
			"imageDes": ""
		}]
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 酒店房型接口(企业直连专用)

[接口位置] /hotel/getHotelRoomType

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
innId String 酒店唯一编号
roomTypeCode String 房型编号(1001 大床房 1002 经济房…)
languageCode int 语言类型(0 中文 1 英文),默认0,类型可扩展
valid String 是否有效,0无效,1有效,如果为空,不传默认返回所有

返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
msgCode int 返回结果Code,0为正常
message String 错误信息
result Object 酒店房态列表

result返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
roomTypeData List<RoomTypeData> 房型编号(兼容第三方)

RoomTypeData返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
roomTypeCode String 房型编号(兼容第三方)
roomTypeName String 房型名称
sCode String 房型唯一编号
maxRoom String 最大房间数量
maxCheckIn Integer 最多入住人数
floor String 楼层
bedType Integer 床型(1双床 2 单床 0 大床 101 其他床型)
bedWidth String 床宽(14 床宽:2.6米;13床宽:2.4米;12床宽:2.3米;11床宽2.2米; 10 床宽:2米;9床宽1.8米 ;8 床宽:1.65米;7 床宽1.6米; 6 床宽1.5米;5 床宽1.4米 ;4床宽1.35米 ;3 床宽1.3米 ;2 床宽1.2 米 ;1 床宽1.1米;0 床宽1米;101 其他宽度);
addBed Integer 是否允许加床(0:否 1:是 )
window Integer 0:无窗1:外窗 2:部分无窗 3:内窗 4:部分内窗

请求和返回json样例

请求

{"innId":"289"} 
1

返回

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"roomTypeData": [{
			"roomTypeCode": "196",
			"roomTypeName": "高级双床房",
			"sCode": "196",
			"maxRoom": "20",
			"maxCheckIn": 4,
			"floor": "6",
			"bedType": 1,
			"bedWidth": "101",
			"addBed": 1,
			"window": 1,
		}, {
			"roomTypeCode": "228",
			"roomTypeName": "传统大床房",
			"sCode": "228",
			"maxRoom": "20",
			"maxCheckIn": 2,
			"floor": "6",
			"bedType": 0,
			"bedWidth": "11",
			"addBed": 0,
			"window": 1,
		}]
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 酒店房态接口(企业直连专用)

(缓存5~10分钟,调用实时接口会自动清一次营业时期的缓存)

[接口位置] /hotel/getHotelRoomStatus

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
innId String 酒店唯一编号
roomTypeCode String 房型编号(1001 大床房 1002 经济房…)
endOfDay String 营业日期(yyyy-MM-dd)
days Integer 查询天数(默认1天)
priceType Integer 1/null 基础协议价 2 追价(基础协议价+普卡活动价)

返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
msgCode int 返回结果Code,0为正常
message String 错误信息
result Data 数据

Data返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
roomTypeList list<RoomTypeInfo> 房型列表

roomTypeInfo返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
roomTypeCode String 房型编号
roomTypeName String 房型名称
productList List<ProductData> 商品列表

productData返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
quota Integer 可售房量
endOfDay Long 营业日
rackRate BigDecimal 门市价
spotRate BigDecimal 到付价
advanceRate BigDecimal 预付价
spotBreakfastCount Integer 到付早餐 null/0-无 1-单早 2-双早
advanceBreakfastCount Integer 预付早餐 null/0-无 1-单早 2-双早
productName String 商品名称
productCode String 商品编号
productType Short 商品类型 0 本店协议价 1 批量分店品牌协议价 2 组合品牌协议价 3 平台协议价 4 企业活动价
protocolType Short 协议类型 0 分店协议 1品牌批量分店协议 2 品牌组合协议 3自营销售分店协议 4自营销售品牌批量分店协议 5自营销售品牌组合协议'
freeCancelTime Long 免费取消时间( 这个时间前预付的订单可免费取消时间)
supportPay List<String> 是否支持到付和预付0,1
hasEffiveTime Boolean 是否含有生效时间,false为永久有效
startTime Long 协议价格生效开始时间
endTime Long 协议价格生效结束时间
cancelRule CancelRuleResponse 取消规则(锦江品牌需要用到),取消规则优先看cancelRule,没有再看cancelTime
newCancelPenaltyList NewCancelRuleResponse 新取消规则(维也纳品牌需要用到),取消规则优先看cancelRule,没有再看cancelTime
advanceFeeRate BigDecimal 预付其他费用
spotFeeRate BigDecimal 到付其他费用
guests Integer 丽笙单人价/双人价
bookRule BookRule 预定规则,目前只针对于活动价

CancelRuleResponse返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
supportCancel Integer 取消方式{0: 不可取消, 1: 免费取消,2: 限时取消}
cancelPenaltyList List<CancelPenaltyResponse> 取消时间段规则。 当cancelType=0时,表示在当前时间段免费取消(start-end) 当cancelType=1时,表示在当前时间段有偿取消(start-end),根据type罚金类型匹配惩罚值value

CancelPenaltyResponse返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
start String 开始时间 yyyy-MM-dd HH:mm:ss
end String 结束时间 yyyy-MM-dd HH:mm:ss
cancelType String 取消类型:0免费取消 1有偿取消
type String 罚金类型 0 房晚 1 百分数 2固定罚金
value String 罚款值

NewCancelRuleResponse返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
cancelType String 取消类型:0免费取消 1有偿取消
type String 罚金类型 0 房晚 1 百分数 2固定罚金
value String 罚款值
minCount Integer 最小房间数范围(部分有)
maxCount Integer 最大房间数范围(部分有)
startHour Integer 开始时间 小时 从当前入住时间24点开始减
endHour Integer 结束时间 小时 从当前入住时间24点开始减

BookRule返回参数(活动专用):

参数名 类型[最大长度] 必填(是/否) 说明
backCash double 返现(单位元,最多保留两位小数点)
maxAmount Integer 最大入住人数
startDateTime String 预定范围开始日期(yyyy-MM-dd HH:mm)
endDateTime String 预定范围结束日期(yyyy-MM-dd HH:mm)
checkStartDateTime String 入住范围开始日期(yyyy-MM-dd)
checkEndDateTime String 入住范围结束日期(yyyy-MM-dd)
checkWeeks String "1,2,3,4,5,6,7", //可入住的星期几
checkMinDay Integer 最小入住天数(可等于)
checkMaxDay Integer 最大入住天数(可等于)
weeks String "1,2,3,4,5,6,7", //可预定的星期几
minStayThrough Integer 表示若预订区间内,某一天这个属性有值,则整个连住天数,必须以这些天的最小minStayThrough,最大的maxStayThrough范围内
maxStayThrough Integer 表示若预订区间内,某一天这个属性有值,则整个连住天数,必须以这些天的最小minStayThrough,最大的maxStayThrough范围内。
bminDay String 最少提前预定天数
bmaxDay String 最大提前预定天数
roomMaxAmount Integer 最大预订房间数
roomMinAmount Integer 最小预订房间数
bookConstranit Array 预定限制
bookCheck Integer 预订限制类型 {0 提前预定 1 不可取消 2 不可预订 3 当天预订当天入住 4 本人预订本人入住 5 必须连住N晚以上 6 仅限预订当天 7 限制预订当天入住并允许连住N晚 8 是否仅开放指定天数 9 本人入住})
bookCheckV String 预订限制的值

请求和返回json样例

请求

{"innId":"451","endOfDay":"2018-10-15"}
1

返回

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"roomTypeList": [{
			"productList": [{
				"quota": 24,
				"endOfDay": 1539532800000,
				"rackRate": 318,
				"spotRate": 239,
				"advanceRate": 270,
				"spotBreakfastCount": null,
				"advanceBreakfastCount": null,
				"cancelRule": null,
				"productCode": "CORLPLATE",
				"productName": "平台协议价",
				"productType": 3,
				"freeCancelTime": null,
				"supportPay": ["0", "1"],
				"hasEffiveTime": false,
				"startTime": null,
				"endTime": null
			}],
			"roomTypeCode": "196",
			"roomTypeName": "高级双床房"
		}, {
			"productList": [{
				"quota": 62,
				"endOfDay": 1539532800000,
				"rackRate": 219,
				"spotRate": 164,
				"advanceRate": 186,
				"spotBreakfastCount": null,
				"advanceBreakfastCount": null,
				"cancelRule": null,
				"productCode": "CORLPLATE",
				"productName": "平台协议价",
				"productType": 3,
				"freeCancelTime": null,
				"supportPay": ["0", "1"],
				"hasEffiveTime": false,
				"startTime": null,
				"endTime": null
			}],
			"roomTypeCode": "228",
			"roomTypeName": "传统大床房"
		}]
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

备注:房态接口的时效性是针对请求方的请求营业日和请求查询天数来计算,如果预订日期超出了这段时间该协议价是无效。例如预订请求时间为6月3-6月8号的,房态数据只符合这5天,预订是6月9号是不一定符合能沿用原来的价格了(假若要根据对应的价格协议的有效时间是否永久和时间区间进行判断) 解析取消规则顺序: "newCancelPenaltyList"》"cancelPenaltyList":》"freeCancelTime" |

# 酒店实时房态接口(企业直连专用)

(下单时候需要验证房源和房价)

[接口位置] /hotel/getHotelRealRoomStatus

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
innId String 酒店唯一编号
roomTypeCode String 房型编号(1001 大床房 1002 经济房…)
endOfDay String 营业日期(yyyy-MM-dd)
days Integer 查询天数(默认1天)
priceType Integer 1/null 基础协议价 2 追价(基础协议价+普卡活动价)

返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
msgCode int 返回结果Code,0为正常
message String 错误信息
result Data 酒店房态数据

Data返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
roomTypeList list<RoomTypeInfo> 房型列表

roomTypeInfo返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
roomTypeCode String 房型编号
roomTypeName String 房型名称
productList List<ProductData> 商品列表

productData返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
quota Integer 可售房量
endOfDay Long 营业日
rackRate BigDecimal 门市价
spotRate BigDecimal 到付价
advanceRate BigDecimal 预付价
spotBreakfastCount Integer 到付早餐 null/0-无 1-单早 2-双早
advanceBreakfastCount Integer 预付早餐 null/0-无 1-单早 2-双早
productName String 商品名称
productCode String 商品编号
productType Short 商品类型 0 本店协议价 1 批量分店品牌协议价 2 组合品牌协议价 3 平台协议价 4 企业活动价
protocolType Short 协议类型 0 分店协议 1品牌批量分店协议 2 品牌组合协议 3自营销售分店协议 4自营销售品牌批量分店协议 5自营销售品牌组合协议'
freeCancelTime Long 免费取消时间( 这个时间前预付的订单可免费取消时间)
supportPay List<String> 是否支持到付和预付0,1
hasEffiveTime Boolean 是否含有生效时间,false为永久有效
startTime Long 协议价格生效开始时间
endTime Long 协议价格生效结束时间
cancelRule CancelRuleResponse 取消规则(锦江品牌需要用到),取消规则优先看cancelRule,没有再看freeCancelTime
newCancelPenaltyList NewCancelRuleResponse 新取消规则(维也纳品牌需要用到),取消规则优先看cancelRule,没有再看cancelTime
advanceFeeRate BigDecimal 预付其他费用
spotFeeRate BigDecimal 到付其他费用
guests Integer 丽笙:单人价/双人价
bookRule BookRule 预定规则,目前只针对于活动价

CancelRuleResponse返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
supportCancel Integer 取消方式{0: 不可取消, 1: 免费取消,2: 限时取消}
cancelPenaltyList List<CancelPenaltyResponse> 取消时间段规则。 当cancelType=0时,表示在当前时间段免费取消(start-end) 当cancelType=1时,表示在当前时间段有偿取消(start-end),根据type罚金类型匹配惩罚值value

CancelPenaltyResponse返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
start String 开始时间 yyyy-MM-dd HH:mm:ss
end String 结束时间 yyyy-MM-dd HH:mm:ss
cancelType String 取消类型:0免费取消 1有偿取消
type String 罚金类型 0 房晚 1 百分数 2固定罚金
value String 罚款值

NewCancelRuleResponse返回参数:

参数名 类型[最大长度] 必填(是/否) 说明
cancelType String 取消类型:0免费取消 1有偿取消
type String 罚金类型 0 房晚 1 百分数 2固定罚金
value String 罚款值
minCount Integer 最小房间数范围(部分有)
maxCount Integer 最大房间数范围(部分有)
startHour Integer 开始时间 小时 从当前入住时间24点开始减
endHour Integer 结束时间 小时 从当前入住时间24点开始减

BookRule返回参数(活动专用):

参数名 类型[最大长度] 必填(是/否) 说明
backCash double 返现(单位元,最多保留两位小数点)
maxAmount Integer 最大入住人数
startDateTime String 预定范围开始日期(yyyy-MM-dd HH:mm)
endDateTime String 预定范围结束日期(yyyy-MM-dd HH:mm)
checkStartDateTime String 入住范围开始日期(yyyy-MM-dd)
checkEndDateTime String 入住范围结束日期(yyyy-MM-dd)
checkWeeks String "1,2,3,4,5,6,7", //可入住的星期几
checkMinDay Integer 最小入住天数(可等于)
checkMaxDay Integer 最大入住天数(可等于)
weeks String "1,2,3,4,5,6,7", //可预定的星期几
minStayThrough Integer 表示若预订区间内,某一天这个属性有值,则整个连住天数,必须以这些天的最小minStayThrough,最大的maxStayThrough范围内
maxStayThrough Integer 表示若预订区间内,某一天这个属性有值,则整个连住天数,必须以这些天的最小minStayThrough,最大的maxStayThrough范围内。
bminDay String 最少提前预定天数
bmaxDay String 最大提前预定天数
roomMaxAmount Integer 最大预订房间数
roomMinAmount Integer 最小预订房间数
bookConstranit Array 预定限制
bookCheck Integer 预订限制类型 {0 提前预定 1 不可取消 2 不可预订 3 当天预订当天入住 4 本人预订本人入住 5 必须连住N晚以上 6 仅限预订当天 7 限制预订当天入住并允许连住N晚 8 是否仅开放指定天数 9 本人入住})
bookCheckV String 预订限制的值

请求和返回json样例

请求

 {"innId":"451","endOfDay":"2018-10-15","roomTypeCode":220} 
1

返回

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"roomTypeList": [{
			"productList": [{
				"quota": 63,
				"endOfDay": 1539532800000,
				"rackRate": 208,
				"spotRate": 156,
				"advanceRate": 177,
				"spotBreakfastCount": null,
				"advanceBreakfastCount": null,
				"cancelRule": null,
				"productCode": "CORLPLATE",
				"productName": "平台协议价",
				"productType": 3,
				"freeCancelTime": null,
				"supportPay": ["0", "1"],
				"hasEffiveTime": false,
				"startTime": null,
				"endTime": null
			}],
			"roomTypeCode": "220",
			"roomTypeName": "自主大床房"
		}]
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

备注:房态接口的时效性是针对请求方的请求营业日和请求查询天数来计算,如果预订日期超出了这段时间该协议价是无效。例如预订请求时间为6月3-6月8号的,房态数据只符合这5天,预订是6月9号是不一定符合能沿用原来的价格了(假若要根据对应的价格协议的有效时间是否永久和时间区间进行判断) 解析取消规则顺序: "newCancelPenaltyList"》"cancelPenaltyList":》"freeCancelTime"

# 预订接口

# 取消订单(企业直连专用)

[接口位置] /booking/cancelOrder

请求类型:

POST

请求参数:

参数名 类型[最大长度] 必填(是/否) 说明
jsonOrderID string 订单id

返回参数:

参数名 类型[最大长度] 说明
msgCode int 结果状态0成功,非0失败
message String 结果描述
result Object 数据

请求和返回json样例

请求

{
	"jsonOrderID": "200000005445"
}
1
2
3

返回

{
	"msgCode": 0,
	"message": "成功",
	"result": null,
	"errors": null
}
1
2
3
4
5
6

# 企业信息查询(企业直连专用)

[接口位置] /corp/queryEnterprise

请求类型:

GET

返回参数:

参数名 类型[最大长度] 说明
msgCode int 结果状态0成功,非0失败
message String 结果描述
result Object 数据

result返回参数:

参数名 类型[最大长度] 说明
status int 结果状态0成功,非0失败
message String 结果描述
cardNo String 公司卡号
enterpriseName String 公司名称
mebLevel int 会员等级
address String 公司地址
phone String 公司电话
accountName String 对公账户户名
companyProperty String 公司性质
companyScale String 公司规模
businessLicence String 企业营业执照副本
balance double 账户余额
employeeCount int 员工总数
adminName String 管理员姓名
adminMobile String 手机号

请求和返回json样例

请求

{
	"cardNo": "90002301473"
}
1
2
3

返回

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"cardNo": "90002301473",
		"enterpriseName": "太平洋公司修改2",
		"mebLevel": 4,
		"address": "guang都氨基酸的洛杉矶的",
		"phone": "020-33332145",
		"accountName": "企业鞋子侧02",
		"companyProperty": "民营",
		"companyScale": "501-1000人",
		"businessLicence": "group1/M00/05/5C/CmRwPlj66beANs3GAAcqyx06gdI468.png",
		"balance": 0,
		"employeeCount": 0,
		"adminName": "huangjjzw",
		"adminMobile": "15820642121"
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 下单预定(企业直连专用)

[接口位置] /booking/postOrder

请求类型:

POST

请求参数:

数名 类型 必填(是/否) 说明
innId String 酒店ID
roomTypeId String 房型编号
roomCount Integer 房间数量。
dtArrorig String 入住营业日,格式为yyyy-MM-dd。 限制: 不能早于当天营业日。 当天营业日入住最晚在次日03:00前下单(这是理论最晚时间,实际允许最晚下单时间按产品规则)。
dtDeporig String 离店营业日,格式yyyy-MM-dd。 限制:必须大于入住营业日。可预订的最大入住天数为15天。
payType Integer 支付方式。0:到付,1:企业储值预付 2 月结预付(预付totalRate必传)
externalId String 第三方渠道的订单号
productCode String 商品编号
passengers List<Object> 入住人信息。入住人信息数量与房间数量原则上一致
guestName String 入住人姓名 预定丽笙时为英文:MING LI
guestMobile String 入住人手机
guestIDCard String 入住人证件号(活动订单必填)
guestIDCardType Integer 入住人证件类型(活动订单必填) 10:身份证、11:台湾居民来往大陆通行证、12:港澳来往大陆通行证、13:外籍护照
lastName String 丽笙品牌才传:英文姓 例:LI
firstName String 丽笙品牌才传:英文名 例:MING
lastArrTime可选 String 到店时间,格式yyyy-MM-dd HH:mm:ss。 现付无担保订单到店时间理论取值范围(T为入住营业日):T 13:00:00 到 T+1 04:00:00。 预付担保单订单到店时间无限制。 18:00后预订当天入住的正价房必需传值。
remarks可选 String 订单备注,内容不能超过200个字,限制:不含json特殊字符
totalRate Double 订单价格,校验订单价格
bookMobile String 预订人手机号,必须为该公司员工,如果未绑定过公司自动绑定
bookName String 预订人姓名。如若不传预订姓名手机号,默认预订人为企业管理员
bookIdCard String 预订人证件号码(本人预定本人入住活动订单必填)
bookIdCardType Integer 预订人证件类型(本人预定本人入住活动订单必填) 10:身份证、11:台湾居民来往大陆通行证、12:港澳来往大陆通行证、13:外籍护照
feeRate BigDecimal 订单其他费用,如果需要额外收费这个字段必填
guestsNum Integer 只有丽笙品牌才传:双人价还是单人价

返回参数:

参数名 类型[最大长度] 说明
msgCode int 结果状态0成功,非0失败
message String 结果描述
result Data 数据

Data返回参数:

参数名 类型[最大长度] 说明
orderCode String 订单号
orderState Integer 订单状态,取值: 0:待确认 1:预订成功 2:已取消 3:预订未到 4:已入住 5:已完成 6:确认失败(注: 用户暂时不会看到0和6这两个状态)

请求和返回json样例

请求

{
	"innId": 451,
	"roomCount": 1,
	"roomTypeId": 220,
	"productCode": "CORLPLATE",
	"payType": 1,
	"dtDeporig": "2018-10-17",
	"dtArrorig": "2018-10-16",
	"externalId": "20181015hwj123",
	"passengers": [{
		"guestName": "huangwenjie",
		"guestMobile": "15820642121"
	}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

返回

 {
	"msgCode": 0,
	"message": "成功",
	"result": {
		"orderCode": "101000387235",
		"orderState": 1
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9

# 查看订单信息(企业直连专用)

[接口位置] /booking/queryOrder

请求类型:

POST

请求参数:

字段 类型 必填(是/否) 描述
jsonOrderID String 其中一个必填 订单编号
externalId String 第三方订单号

返回参数:

参数名 类型[最大长度] 说明
msgcode int 结果状态0成功,非0失败
message String 结果描述
result Object 数据

result返回参数:

字段 类型 描述
orderCode String 订单编号
externalId String 第三方渠道的订单号,这是在下单时第三 方渠道传过来的订单号
innId String 酒店ID
innName String 酒店名称
roomTypeId String 房型编号
roomTypeName String 房间类型名称
roomQty Integer 房间数量
orderState Integer 订单状态,取值: 0:待确认 1:预订成功 2:已取消 3:预订未到 4:已入住 5:已完成 6:确认失败(注: 用户暂时不会看到 0和6这两个状态)
payType Integer 支付方式(0 到付;1 线上预付)
payState Integer 支付状态 0:未付款 1:已付款 2:退款处理中 3:已退款
payRate Double 订单金额
assureType String 担保类型 0:无担保 2:全程担保
guestsName String 入住人姓名(逗号隔开)
contactName String 联系人姓名
contactPhone String 联系人电话
contactEmail String 联系人邮箱
origArrDate String 预计抵店时间
origDepDate String 预计离店时间
arrDate String 实际入住时间
depDate String 实际离店时间
remarks String 订单备注
returnRate Double 订单提前离店返回储值
realPayRate Double 订单实际支付价格
invoiceType List<Integer> 发票类型列表 发票类型 1 普通发票,0 无, 2 增值税普通发票, 3 增值税专用发票, 4 电子增值税普通发票
feeRate BigDecimal 其他费用

请求和返回json样例

请求

{"jsonOrderID":"100000052561"} 
1

返回

{
	"msgCode": 0,
	"message": "成功",
	"result": {
		"orderCode": "100000052561",
		"externalId": "2",
		"innId": "451",
		"innName": "7天广州琶洲店",
		"roomTypeId": "220",
		"roomTypeName": "自主大床房",
		"roomQty": 1,
		"orderState": 1,
		"payType": 0,
		"payState": 0,
		"payRate": 131,
		"assureType": 0,
		"guestsName": "黄文杰",
		"contactName": "黄文杰",
		"contactPhone": "15820642121",
		"contactEmail": "",
		"origArrDate": "2017-04-15 00:00:00",
		"origDepDate": "2017-04-16 14:00:00",
		"arrDate": "",
		"depDate": "",
		"remarks": "",
		"tmcEnterpriseName": null,
		"returnRate": 0,
		"realPayRate": 131
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 支付接口(企业直连专用)

该接口目前支持支付宝和微信支付,到付订单可以通过支付宝和微信支付

[接口位置] /payment/pay

请求类型:

POST

请求参数:

字段 类型 必填(是/否) 描述
jsonOrderID String 订单编号
payType Integer 2微信 3 支付宝
notifyUrl String 支付通知地址(支付成功返回支付信息)

返回参数:

参数名 类型[最大长度] 说明
msgCode int 结果状态0成功,非0失败
message String 结果描述
result Object 数据

result返回参数:

参数名 类型[最大长度] 说明
referenceId String(5000) 参考号,根据不同支付方式返回, 下面有说明
platenopayFlowNo String(50) 交易流水号

请求和返回json样例

请求

 {  "jsonOrderID": "200000052200",  "payType": 2,  "notifyUrl": "http://10.100.33.131:8888/corp-api-server/corpService/test/notify"   } 
1

返回

{  "status": 0,  "message": "交易成功",  "data": {  "referenceId": "{\\"service\\":\\"create_direct_pay_by_user\\",\\"partner\\":\\"2088021056569392\\",\\"_input_charset\\":\\"utf-8\\",\\"payment_type\\":\\"1\\",\\"notify_url\\":\\"http://120.25.228.148/paytest/notify/alipay.html\\",\\"seller_email\\":\\"zhifubaobt@pp.plateno.cc\\",\\"out_trade_no\\":\\"2017041113135623110007343\\",\\"subject\\":\\"7天广州琶洲店\\",\\"total_fee\\":\\"131.0\\",\\"body\\":\\"7天广州琶洲店\\",\\"show_url\\":\\"\\",\\"anti_phishing_key\\":\\"\\",\\"exter_invoke_ip\\":\\"\\",\\"sign\\":\\"c914ea9ca1f112f6404cdd98d9d4afd6\\",\\"sign_type\\":\\"MD5\\"}",  "platenopayFlowNo": "491887636127966489"  } } 
1

网页处理响应参数

  • 微信扫码的响应参数是:
{
	"status": 0,
	"message": "交易成功",
	"data": {
		"referenceId": "http://120.25.228.148/paytest/payment/qrcode.html?qrcodeKey=e3BheX13ZWl4aW46Ly93eHBheS9iaXpwYXl1cmw/cHI9eUlITzloVw==",
		"platenopayFlowNo": "491887740324163412"
	}
}

1
2
3
4
5
6
7
8
9

组成网页的图片后:

<div>请扫二维码完成支付<div><img alt="" src=""http://120.25.228.148/paytest/payment/qrcode.html?qrcodeKey=e3BheX13ZWl4aW46Ly93eHBheS9iaXpwYXl1cmw/cHI9eUlITzloVw==">

  • 支付宝扫码(gateId=1005)的响应参数是:
{
	"status": 0,
	"message": "交易成功",
	"data": {
	"referenceId":
	"{\\"service\\":\\"create_direct_pay_by_user\\",\\"partner\\":\\"2088021056569392\\",\\"_input_charset\\":\\"utf-8\\",\\"payment_type\\":\\"1\\",\\"notify_url\\":\\"http://120.25.228.148/paytest/notify/alipay.html\\",\\"seller_email\\":\\"zhifubaobt@pp.plateno.cc\\",\\"out_trade_no\\":\\"2017041113135623110007343\\",\\"subject\\":\\"7天广州琶洲店\\",\\"total_fee\\":\\"131.0\\",\\"body\\":\\"7天广州琶洲店\\",\\"show_url\\":\\"\\",\\"anti_phishing_key\\":\\"\\",\\"exter_invoke_ip\\":\\"\\",\\"sign\\":\\"c914ea9ca1f112f6404cdd98d9d4afd6\\",\\"sign_type\\":\\"MD5\\"}",
	"platenopayFlowNo": "491887636127966489"
	}
}

1
2
3
4
5
6
7
8
9
10

组成网页的表单后:

<form id="alipayForm" action="https://mapi.alipay.com/gateway.do?_input_charset=utf-8">

<input type="hidden" name="sign" value="*c914ea9ca1f112f6404cdd98d9d4afd6"/><br>

<input type="hidden" name="body" value="7天广州琶洲店" /><br>

<input type="hidden" name="_input_charset" value="utf-8" /><br>

<input type="hidden" name="total_fee" value="131.0" /><br>

<input type="hidden" name="subject" value="7天广州琶洲店" /><br>

<input type="hidden" name="sign_type" value="MD5" /><br>

<input type="hidden" name="service" value="create_direct_pay_by_user/><br>

<input type="hidden" name="notify_url" value="http://120.25.228.148/paytest/notify/alipay.html" /><br>

<input type="hidden" name="partner" value="*2088021056569392" /><br>

<input type="hidden" name="seller_email" value="zhifubaobt@pp.plateno.cc/><br>

<input type="hidden" name="out_trade_no" value="*2017041113135623110007343/><br>

<input type="hidden" name="payment_type" value="1" /><br>

</form>

# 支付查询接口(企业直连专用)

[接口位置] /payment/paymentQuery

请求类型:

POST

请求参数:

字段 类型 必填(是/否) 描述
jsonOrderID String 订单编号

返回参数:

参数名 类型[最大长度] 说明
msgCode int 结果状态0成功,非0失败
message String 结果描述
result Object 数据

result返回参数:

参数名 类型[最大长度] 说明
platenopayFlowNo String(50) 交易流水号
platenorefundFlowNo String(50) 退款流水号
subject String 商店名称
amount Integer 支付金额(分)
orderCode String 订单号
payType Integer 2 微信 3 支付宝

请求和返回json样例

请求

{
	"jsonOrderID": "101000387845"
}
1
2
3

返回

 {
	"msgCode": 0,
	"message": "成功",
	"result": {
		"platenopayFlowNo": "101000387845",
		"platenorefundFlowNo": null,
		"subject": null,
		"amount": 15600,
		"orderCode": "101000387845",
		"payType": 1,
		"orderState": 1,
		"payState": 1
	},
	"errors": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 附录

# 公司性质

性质名称
民营
外资
合资
国营

# 公司规模

公司规模
100人以下
101-500人
501-1000人
1000人以上

# 月均住宿量

月均住宿量
0-50晚
1-99晚
99-199晚
200晚以上

# 城市编码

文件下载 (opens new window)