订单相关接口模式
下单前验证是否可定指定房型接口
说明:下单之前的DoubleCheck,用于下单前对一家酒店某个具体房型的房价、房量校验,
检验通过方可下单
接口地址:/hotel/checkAvailability
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM0002220001 |
cardPassWord | String | 公司卡密码 | 是 | TestPassword |
isGroup | Bool | 是否对总 false:个人支付 订单 true:企业总对总支付订单,包括预付和信用 | 是 | true |
guaranteeMode | String | 担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 | 是 | 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式,判断房量房价接口中的BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码;活动价下单时,验价及下单接口必须要传activityId,否则默认为会员价) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
bookerId | String | 预订人公司卡ID | 是 | |
hotelId | String | 酒店Id | 是 | 2000505 |
roomTypeId | String | 房型代码 | 是 | DR |
checkInDate | DateTime | 入住日期 | 是 | 2020/1/1 |
checkOutDate | DateTime | 离店日期 | 是 | 2020/1/2 |
activityId | String | 活动Id | 否 | 会员价非必填 活动价必填 |
rateCode | String | 房价码 | 是 | |
couponNos | List<String> | 优惠券列表 | 否 | |
bookerPersonMobile | String | 预订人手机号 | 否 | 与优惠券绑定人手机号一致; 若是中国大陆手机号,前缀无需加+86,请直接传11位手机号码 |
bookerPriceType | String | 预订价格类型 个人:PERSON 企业:COMPANY 当企业总对总支付订单时,必传企业:COMPANY | 否 | PERSON |
adultsPerRoom | Integer | 一间房的入住人数,用于获取多人价(举例:一人价、两人价等); 入住人数:1-5,目前不支持大于5人(不涉及儿童数量,价格只根据成人数量计算,举例:两大一小,数量传2) | 否 | 不传值,默认是2 注:针对非中国内地酒店(包含港澳台酒店)使用 |
currencyCode | String | 币种(当地币种) | 否 | 非中国内地酒店(包含港澳台酒店)需要传输 |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"bookerId": "VCENTCRM0002224829",
"checkInDate": "2020-08-26",
"checkOutDate": "2020-08-27",
"hotelId": "2000015",
"guaranteeMode": "NONE",
"isGroup": false,
"roomTypeId": "SQ1",
"rateCode": "Base-OCK-STD-BF2",
"activityId": ""
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | CheckAvailabilityDTO | 返回对象,此酒店此房型的房量、房价信息 |
CheckAvailabilityDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
activityId | String | 活动ID |
roomCount | CheckAvailabilityRoomCountDTO | 房量 |
priceDailyList | List<PriceDailyDTO> | 每日价格 |
roomCountDailyList | List<RoomCountDailyDTO> | 每日房量 |
rateCodeInfoList | List<RateCodeInfoRespDTO> | 房价码信息 |
memberBreakFast | BreakFastDTO | 会员和早餐信息 |
bookInfo | BookInfoDTO | 预订信息 |
checkInInfo | CheckInInfoDTO | 入住信息 |
cancelInfo | CancelInfoDTO | 取消信息 |
exchangeRateList | List<ExchangeRate> | 汇率信息 |
otherInfo | OtherInfoDTO | 其他信息 |
CheckAvailabilityRoomCountDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
roomTypeId | String | 房型ID |
retainCount | Int | 保留房量 |
shareCount | Int | 共享房量 |
availableCount | Int | 可用房量 |
PriceDailyDTO
参数名 | 参数类型 | 备注 |
---|---|---|
roomTypeId | String | 房型 |
bizDate | Date | 营业日 yyyy-MM-dd |
currencyCode | String | 币种 |
marketPrice | Decimal | 门市价 |
beforeTaxPrice | Decimal | 税前价(净价) |
afterTaxPrice | Decimal | 税后价(含税价) |
multiPerson | Int | 一人价、两人价 |
companyToGroupPrice | Decimal | 公司总对总价(含税价+税点差价) |
marketCNYPrice | Decimal | 人民币门市价(含税价) |
beforeTaxCNYPrice | Decimal | 人民币税前价(净价) |
afterTaxCNYPrice | Decimal | 人民币税后价(含税价) |
companyToGroupCNYPrice | Decimal | 人民币公司总对总价(含税价+税点差价) |
isForbidden | Bool | 是否禁用 |
isBlack | Bool | 是否房型黑名单 |
RoomCountDailyDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
roomTypeId | String | 房价码 |
bizDate | Date | 营业日 |
retainCount | Integer | 保留房 |
shareCount | Integer | 共享房 |
availableCount | Integer | 可售 |
isForbidden | Boolean | 是否禁用 |
isBlack | Boolean | 是否房型黑名单 |
RateCodeInfoRespDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
rateCode | String | 房价码 |
checkInTypeList | List<String> | 入住类型(DAY、HOUR、GROUP、LONGSTAY) |
tag | List<String> | 标签 尾房、固定价等 |
activityId | String | 子活动id |
BreakFastDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
memberLevel | String | 会员级别 |
breakfastCount | Integer | breakfastCount是指入住人的最大早餐份数 举例说明: 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份早餐 |
companySrc | CompanySrc | 公司来源(枚举,HUAZHU:华住 ACCOR:雅高) |
breakFastExt | BreakFastExtDTO | 早餐扩展信息 |
BreakFastExtDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
multiPersonBreakFastCountList | List<MultiPersonDTO> | 多人入住早餐列表 |
MultiPersonDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
multiPerson | Integer | 入住人数 |
breakfastCount | Integer | breakfastCount是指入住人的最大早餐份数 举例说明: 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份早餐 |
BookInfoDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
guaranteeMode | String | 支持的担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式,判断房量房价接口中的BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码;活动价下单时,验价及下单接口必须要传activityId,否则默认为会员价) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
holdTime | String | 最晚保留时间 |
bookDesc | String | 预订说明 |
CheckInInfoDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
isOneSelf | Bool | 是否必须本人本卡 |
checkInDesc | String | 入住说明 |
CancelInfoDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
isCanCancel | Bool | 是否可取消 |
lastCancelDate | String | 最晚取消时间 |
cancelDesc | String | 取消说明 |
ExchangeRate
参数名 | 参数类型 | 备注 |
---|---|---|
currencyOrigin | String | 原始币种 |
currencyTarget | String | 目标币种 |
exchangeRate | String | 汇率 |
currencyDate | String | 汇率日期 yyyy-MM-dd |
timestamp | Long | 汇率时间搓 |
versionNo | String | 汇率版本 |
OtherInfoDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
isPromotionCodeCanBook | Bool | 是否必须使用促销券码才能预订 |
isCanUseCoupon | Bool | 是否支持优惠券 |
otherDesc | String | 其他说明 |
返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"activityId": null,
"roomCount": {
"roomTypeId": "SQ1",
"retainCount": 0,
"shareCount": 16,
"availableCount": 16
},
"priceDailyList": [
{
"roomTypeId": "SQ1",
"bizDate": "2020-08-26",
"currencyCode": "CNY",
"marketPrice": 329,
"beforeTaxPrice": 280,
"afterTaxPrice": 280,
"companyToGroupPrice": 289.38,
"marketCNYPrice": 329,
"beforeTaxCNYPrice": 280,
"afterTaxCNYPrice": 280,
"companyToGroupCNYPrice": 289.38,
"isForbidden": false,
"isBlack": false
}
],
"roomCountDailyList": [
{
"roomTypeId": "SQ1",
"bizDate": "2020-08-26",
"retainCount": 0,
"shareCount": 16,
"availableCount": 16,
"isForbidden": false,
"isBlack": false
}
],
"memberBreakFast": {
"memberLevel": "K",
"breakfastCount": 2
},
"bookInfo": {
"guaranteeMode": "NONE",
"holdTime": null,
"bookDesc": "预订说明:担保方式:NONE,"
},
"checkInInfo": {
"isOneSelf": true,
"checkInDesc": "入住说明:是否必须本人本卡:是"
},
"cancelInfo": {
"isCanCancel": true,
"lastCancelDate": "2020-08-26 18:00:00",
"cancelTime": "2020-08-26 20:00:00",
"cancelDesc": "取消说明:是否可取消:是,最晚取消时间:2020-08-26 18:00:00,"
},
"exchangeRateList": {
"currencyOrigin": "SUD",
"currencyTarget": "CNY",
"exchangeRate": "0.185525936797918143",
"currencyDate": "2023-07-05",
"timestamp": 1688515199,
"versionNo": "a141ef6f5be7481e9db0158641247811"
},
"otherInfo": {
"isPromotionCodeCanBook": false,
"isCanUseCoupon": true,
"otherDesc": "其他说明:是否必须使用促销券码才能预订:否,是否支持优惠券:是,"
}
},
"echoToken": "61173cd8-1089-4cce-83d9-4ef9ddd2b1fe"
}
下单
注意:
所有使用华住商旅API接口对接的客户(包括TMC),均需要根据以下机制做程序补偿机制
- 调用华住商旅下单接口后,没有收到确定的返回结果(如500错误或系统网络超时等), 调用方需使用原下单请求号RequestNo进行重试下单接口(orderadd)或查询接口(queryByRequestNo), 查询建议,下单后的第3分钟后查询第一次,若返回500错误或系统网络超时等,建议第5分钟查询第二次,若再返回500错误或系统网络超时等,建议第10分钟查询第三次;
- 1)若查询到订单号:
- a、订单号bookStatus状态为P则代表未处理完成,需按照查询建议继续查询订单状态即可;
- b、订单号bookStatus状态为R则代表预订成功;
- c、订单号bookStatus状态为E则代表客户在前台已办理入住;
- d、订单号bookStatus状态为X则代表订单已取消。
- 2)如超过10分钟,仍未收到确定结果或者订单号bookStatus状态仍为P,可发到华住商旅企业对接群找华住相关人员确认订单情况,如未重试或未确认可能会产生差异订单,企业需要结算此笔费用。
- 总对总结算模式的下单请求,若返回"付款失败(code:3028,message:订单支付失败)", 需要重试下单接口(orderadd)或查询接口(queryByRequestNo)获取到已经生成的订单号, 查询建议,下单后的第3分钟后查询第一次,若返回500错误或系统网络超时等,建议第5分钟查询第二次,若再返回500错误或系统网络超时等,建议第10分钟查询第三次;
- 1)订单号中查看bookStatus状态
- a、订单号bookStatus状态为P则代表未处理完成,需按照查询建议继续查询订单状态即可;
- b、订单号bookStatus状态为R则代表预订成功;
- c、订单号bookStatus状态为E则代表客户在前台已办理入住;
- d、订单号bookStatus状态为X则代表订单已取消。(扣款失败会取消订单)。
- 2)如超过10分钟,订单号bookStatus状态仍为P,可发到华住商旅企业对接群找华住相关人员确认订单情况,如未重试或未确认可能会产生差异订单,企业需要结算此笔费用。
接口地址: order/add
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM0002220001 |
cardPassWord | String | 公司卡密码 | 是 | TestPassword |
isGroup | Bool | 是否总对总 false:现付订单 true:总对总订单,包括预付和信用 | 是 | true |
guaranteeMode | String | 支持的担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式,判断房量房价接口中的BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码;活动价下单时,验价及下单接口必须要传activityId,否则默认为会员价) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 | 是 | 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式,判断房量房价接口中的BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码;活动价下单时,验价及下单接口必须要传activityId,否则默认为会员价) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
apiType | String | API 类型 INTERFACE:接口下单 DIRECT:直连H5下单 | 是 | INTERFACE |
requestNo | String | 下单请求号 | 是 | |
outerRefId | String | 关联号(OA Id) | 否 | |
bookerId | String | 预订人公司卡ID | 是 | |
isNeedRegisterMember | Bool | 是否为入住人赠送积分 | 是 | |
bookerPersonId | String | 预订人员工编号 | 否 | |
bookerPersonFirstName | String | 国内酒店传值时,此字段表示“预订人姓名”或“预订人的名“ 海外酒店传值时,此字段表示“预订人的名” 海外酒店传值时,请传英文或者拼音 | 否 | |
bookerPersonLastName | String | 预订人的姓(海外酒店必传) 海外酒店传值时,请传英文或者拼音 | 否 | |
bookerPersonMobile | String | 预订人手机号 | 否 | 如使用优惠券和个人价这个字段必填 使用优惠券,与优惠券绑卷人手机号一致 使用个人价,传个人会员的手机号; 若是中国大陆手机号,前缀无需加+86,请直接传11位手机号码 |
bookerPersonIDNumber | String | 预订人证件号 | 否 | 注:预留字段,无需传值 |
adults | Int | 一间房的入住人数,用于获取多人价(举例:一人价、两人价等); 入住人数:1-5,目前不支持大于5人(不涉及儿童数量,价格只根据成人数量计算,举例:两大一小,数量传2) | 是 | 不传值,默认是2 |
childs | Int | 儿童数 | 否 | |
travelLevel | String | 差旅档次和级别 | 否 | |
travelType | String | 差旅类型 COMPANY:因公 PERSON:因私 (当企业总对总支付订单时,必传企业:COMPANY) | 否 | PERSON |
linkFirstName | String | 国内酒店传值时,此字段表示“联系人姓名”或“联系人的名“ 海外酒店传值时,此字段表示“联系人的名” 海外酒店传值时,请传英文或者拼音 | 是 | |
linkLastName | String | 联系人的姓(海外酒店必传) 海外酒店传值时,请传英文或者拼音 | 否 | |
linkMobile | String | 联系人手机 | 是 | |
linkEmail | String | 联系人邮箱 | 否 | 非中国内地酒店(包含港澳台酒店)此字段为必填 |
hotelId | String | 酒店Id | 是 | 2000505 |
roomTypeId | String | 房型 | 是 | DR |
checkInType | String | 入住类型 DAY:天 HOUR:小时 | 是 | DAY |
checkInDate | DateTime | 入住日期 | 是 | 2020/1/1 |
checkOutDate | DateTime | 离店日期 | 是 | 2020/1/2 |
arriveTime | DateTime | 抵达时间 | 否 | |
roomCount | Int | 房间数量,>=1 | 是 | |
remark | String | 客人备注 | 否 | |
dailyPriceList | List<DailyPriceParameter> | 每日房价列表 | 是 | |
rateCode | String | 房价码 | 是 | |
activityId | String | 活动Id | 否 | 会员价非必填 活动价必填 |
isNeed | Bool | 是否需要一次性用品,H5新加字段,接口上还未实现 | ||
invoiceNo | String | 纳税人识别号 | 否 | 当是总对总订单并且有多组开票信息时,必传 |
bookerPriceType | String | 预订价格类型 个人:PERSON 企业:COMPANY 当企业总对总支付订单时,必传企业:COMPANY | 否 | PERSON |
customerDictionary | String | 企业对账单的扩展字段,需提前找运营在后台配置对应扩展字段; 外部客户调用接口时可传递对应的扩展字段,扩展字段将呈现在华住商旅后台下载的企业对账单中,方便用于对账使用等。 扩展字段如下: Department:员工部门 ; ApplicationRemark:申请单备注 ; EmpUniqueId:员工唯一标识 ; OrderType:订单类型 ; ApplicationCostCenter:申请单成本中心 ; ReqUniqueId:下单标识 ; Subsidiary:子公司 ; PayCompanyName:发薪公司 ; | 否 | 传值规则:{ "ReqUniqueId":"DS10001", "OrderType":"CREDIT", "Department":"CK" } OrderType枚举: (CREDIT:信用 ADVANCE:预付 OTHER:其他) |
guestInfoList | List<GuestParameter> | 入住人信息(整体为空表示不传值,若需传值按照具体规则传值) | 否 | |
settleBodyCode | String | 会计主体code | 否 | 开启主体对账时必传 |
DailyPriceParameter:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
bizDate | DateTime | 营业日 | 是 | |
afterTaxPrice | Decimal | 房价(税后价) | 是 | |
afterTaxCNYPrice | Decimal | 人民币房价(税后价) | 非中国内地酒店(包含港澳台酒店)总对总下单必填 | |
couponNo | String | 优惠券码 | 否 |
GuestParameter:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
guestFirstName | String | 中国内地酒店(不含港澳台酒店)传值时,此字段表示“入住人姓名”或“入住人的名“ 非中国内地酒店(包含港澳台酒店)传值时,此字段表示“入住人的名” 海外酒店传值时,请传英文或者拼音 | 是 | |
guestLastName | String | 入住人的姓(海外酒店必传) 海外酒店传值时,请传英文或者拼音 | 否 | |
guestPhone | String | 入住人手机号 | 否 | 若是中国大陆手机号,前缀无需加+86,请直接传11位手机号码 |
guestEmail | String | 入住人邮箱 | 否 | |
guestRoomNo | Integer | 同一个值则表示为同一房间入住人 | 是 |
请求参数示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"isGroup": true,
"guaranteeMode": "NONE",
"apiType": "INTERFACE",
"requestNo": "string",
"outerRefId": "string",
"bookerId": "string",
"isNeedRegisterMember": false,
"bookerPersonId": "string",
"bookerPersonMobile": "string",
"bookerPersonIDNumber": "string",
"adults": 0,
"childs": 0,
"travelLevel": "string",
"travelType": "COMPANY",
"linkMobile": "string",
"linkEmail": "string",
"hotelId": "string",
"roomTypeId": "string",
"checkInType": "DAY",
"checkInDate": "2020-01-01",
"checkOutDate": "2020-01-02",
"arriveTime": "2020-01-02 14:00:00",
"roomCount": 0,
"remark": "string",
"dailyPriceList": [
{
"bizDate": "2020-01-01",
"afterTaxPrice": 0
}
],
"rateCode": "string",
"activityId": "string",
"invoiceNo": "string",
"guestInfoList": [
{
"guestFirstName": "张三/三",
"guestLastName": "张",
"guestPhone": "13411111111",
"guestEmail": "zhangsan@xx.com",
"guestRoomNo": 1
}
]
}
返回参数说明
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | OrderInfo | OrderInfo |
OrderInfo:
参数名 | 参数类型 | 备注 |
---|---|---|
orderId | code | 华住订单号 |
bookStatus | String | 订单预订状态 P:处理中(中间态) R:预订成功 E:完成 X:取消 |
返回参数示例
{
"code": "200",
"message": "string",
"content": {
"bookStatus": "string",
"orderId": "string"
}
}
取消订单
接口地址: order/cancel
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM0002220001 |
cardPassWord | String | 公司卡密码 | 是 | TestPassword |
orderId | String | 订单号 | 是 | R20005050001936627 |
hotelId | String | 酒店Id | 是 | 2000505 |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"orderId": "string",
"hotelId": "string"
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | Bool | 是否成功 |
返回示例:
{
"code": "200",
"message": "string",
"content": true
}
查询订单
接口地址:order/query
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM0002220001 |
cardPassWord | String | 公司卡密码 | 是 | TestPassword |
orderId | String | 订单号 | 是 | R20005050001936627 |
hotelId | String | 酒店Id | 是 | 2000505 |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"orderId": "string",
"hotelId": "string"
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | OrderInfo | 订单信息 |
OrderInfo:
参数名 | 参数类型 | 备注 |
---|---|---|
requestNo | String | 外部流水号、下单请求号 |
orderId | String | 订单号 |
breakfastCount | Int | breakfastCount是指入住人的最大早餐份数 举例说明: 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份早餐 |
adults | Int | 成人数 |
childs | Int | 儿童数 |
travelLevel | String | 差旅类型等级、档次 (H5需要) |
travelType | String | 差旅类型,因公(COMPANY),因私(PERSON),(H5需要) |
bookerPersonId | String | 预订人员工编号 |
linkFirstName | String | 国内酒店传值时,此字段表示“联系人姓名”或“联系人的名“ 海外酒店传值时,此字段表示“联系人的名” |
linkLastName | String | 联系人的姓(海外酒店必传) |
linkMobile | String | 联系人电话 |
linkEmail | String | 联系人邮箱(非中国内地酒店(包含港澳台酒店)酒店此字段为必填) |
bookerPersonFirstName | String | 国内酒店传值时,此字段表示“预订人姓名”或“预订人的名“ 海外酒店传值时,此字段表示“预订人的名” |
bookerPersonLastName | String | 预订人的姓(海外酒店必传) |
hotelId | String | 酒店Id |
hotelName | String | 酒店名称 (H5需要) |
hotelAddress | String | 酒店地址 (H5需要) |
brandCode | String | 酒店品牌code (H5需要) |
brandName | String | 酒店品牌名称 (H5需要) |
roomTypeId | String | 房型代码 |
roomTypeName | String | 房型名称 (H5需要) |
checkInType | String | 入住类型,天(DAY),小时(HOUR) |
checkInDate | DateTime | 预订单入住日期 |
checkOutDate | DateTime | 预订单离店日期 |
lastCheckoutTime | DateTime | 最晚离店日期 |
arriveTime | DateTime | 预订单预计到达时间 |
roomCount | Int | 预订房间数 |
bookStatus | String | 订单预订状态 P:处理中(中间态) R:预订成功 E:完成 X:取消 |
businessType | String | 业务模式 CASH:现付,例如:到门店付 COMPANY_ADVANCE:企业预付,例如:支付宝立即扣、中航结立即扣CREDIT:信用,例如:担保金月结,担保金离店T+N扣款 |
guaranteeMode | String | 担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式,判断房量房价接口中的BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码;活动价下单时,验价及下单接口必须要传activityId,否则默认为会员价) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
dailyPriceList | List<DailyPriceResponseDTO> | 每日房价 |
currencyCode | String | 币种 |
rateCode | String | 房价码 |
activityId | String | 活动Id |
isCanCancel | Bool | 是否可以取消 |
lastCancelTime | DateTime | 最晚取消时间 (H5需要) |
cancelDesc | String | 取消政策 |
lastHoldTime | DateTime | 最晚保留时间 |
isSendMessage | Bool | 预订短信是否已发送 (H5需要) |
createTime | Date | 下单时间 |
payStatus | String | 订单付款状态 NONE:未支付 PAY:已支付 REFUND:已退款 注:针对总对总结算订单,下单流程是先下单,下单成功再去扣款,扣款成功,返回订单号,扣款失败会马上取消订单,在取消订单过程中,客户来重试下单或查询订单,会返回bookStatus=R和订单号给客户,但实际在客人没有马上办理入住的情况下会取消订单,造成客人到店无可入住的订单,现可以根据bookStatus=R并且payStatus=PAY判断订单预订并支付成功,如果bookStatus=R并且payStatus=NONE在客人没有马上办理入住的情况下会取消订单,取消成功bookStatus=X(此时不关心payStatus),由于客人办理入住导致取消失败,产生的费用需要正常结算 |
checkInPolicyDesc | String | 入住政策,H5新增字段,接口还未实现 |
outerHotelRefId | String | 第三方酒店订单ID(雅高) |
travelMoney | String | 差标金额 |
pmsAdapterOrderStatus | String | 实际订单状态 R:预订成功 I:入住 O:离店 N:NoShow E:完成 X:取消 |
bookerPriceType | String | 预订价格类型 |
bookerPersonMobile | String | 绑券会员手机号或个人价手机号 |
DailyPriceResponseDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
bizDate | DateTime | 营业日 |
afterTaxPrice | BigDecimal | 房价 |
afterTaxCNYPrice | BigDecimal | 人民币房价 |
返回参数示例:
{
"code": "200",
"message": "成功!",
"content": {
"requestNo": "1701222124836",
"orderId": "R2000014133954927001",
"breakfastCount": 2,
"adults": 1,
"childs": 0,
"travelLevel": "",
"travelType": "COMPANY",
"linkMobile": "18302451065",
"linkEmail": "ceshizhuanyong@ceshi.com",
"linkFirstName": "赵七七/七七",
"linkLastName": "赵",
"bookerPersonFirstName": "张三/三",
"bookerPersonLastName": "张",
"hotelId": "2000014",
"hotelName": null,
"hotelAddress": null,
"brandCode": null,
"brandName": null,
"roomTypeId": "DR1",
"roomTypeName": null,
"checkInType": "DAY",
"checkInDate": "2023-11-29",
"checkOutDate": "2023-11-30",
"lastCheckoutTime": "2023-11-30 14:00:00",
"arriveTime": "2023-11-30 18:00:00",
"roomCount": 1,
"bookStatus": "R",
"businessType": "CREDIT",
"guaranteeMode": "FIRST_NIGHT",
"dailyPriceList": [
{
"bizDate": "2023-11-29",
"afterTaxPrice": 373,
"afterTaxCNYPrice": 373
}
],
"currencyCode": "CNY",
"rateCode": "Base-OCK-STD",
"activityId": "",
"isCanCancel": true,
"lastCancelTime": "2023-11-29 00:00:00",
"cancelDesc": "取消说明:是否可取消:是,最晚取消时间:2023-11-29 00:00:00,",
"lastHoldTime": "2023-11-29 20:00:00",
"isSendMessage": false,
"outerHotelRefId": null,
"pmsAdapterOrderStatus": "R",
"bookerPersonMobile": "",
"bookerPriceType": "COMPANY",
"createTime": "2023-11-29 09:42:05",
"bookerPersonId": "",
"travelMoney": "",
"payStatus": "PAY"
},
"echoToken": "e359a589-4138-4b40-b22b-0beb37df24bf"
}
根据下单号查询订单
接口地址:order/queryByRequestNo
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM0002220001 |
cardPassWord | String | 公司卡密码 | 是 | TestPassword |
requestNo | String | 下单请求号 | 是 | hd070808 |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"requestNo": "string"
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | OrderInfo | 订单信息 |
OrderInfo:
参数名 | 参数类型 | 备注 |
---|---|---|
requestNo | String | 外部流水号、下单请求号 |
orderId | String | 订单号 |
breakfastCount | Int | breakfastCount是指入住人的最大早餐份数 举例说明: 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份早餐 |
adults | Int | 成人数 |
childs | Int | 儿童数 |
travelLevel | String | 差旅类型等级、档次 (H5需要) |
travelType | String | 差旅类型,因公(COMPANY),因私(PERSON),(H5需要) |
bookerPersonId | String | 预订人员工编号 |
linkMobile | String | 联系人电话 |
linkEmail | String | 联系人邮箱 |
linkFirstName | String | 国内酒店传值时,此字段表示“联系人姓名”或“联系人的名“ 海外酒店传值时,此字段表示“联系人的名” |
linkLastName | String | 联系人的姓(海外酒店必传) |
bookerPersonFirstName | String | 国内酒店传值时,此字段表示“预订人姓名”或“预订人的名“ 海外酒店传值时,此字段表示“预订人的名” |
bookerPersonLastName | String | 预订人的姓(海外酒店必传) |
hotelId | String | 酒店Id |
hotelName | String | 酒店名称 (H5需要) |
hotelAddress | String | 酒店地址 (H5需要) |
brandCode | String | 酒店品牌code (H5需要) |
brandName | String | 酒店品牌名称 (H5需要) |
roomTypeId | String | 房型代码 |
roomTypeName | String | 房型名称 (H5需要) |
checkInType | String | 入住类型,天(DAY),小时(HOUR) |
checkInDate | DateTime | 预订单入住日期 |
checkOutDate | DateTime | 预订单离店日期 |
lastCheckoutTime | DateTime | 最晚离店日期 |
arriveTime | DateTime | 预订单预计到达时间 |
roomCount | Int | 预订房间数 |
bookStatus | String | 订单预订状态 P:处理中(中间态) R:预订成功 E:完成 X:取消 |
businessType | String | 业务模式 CASH:现付,例如:到门店付 COMPANY_ADVANCE:企业预付,例如:支付宝立即扣、中航结立即扣CREDIT:信用,例如:担保金月结,担保金离店T+N扣款 |
guaranteeMode | String | 担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式,判断房量房价接口中的BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码;活动价下单时,验价及下单接口必须要传activityId,否则默认为会员价) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
dailyPriceList | List<DailyPriceResponseDTO> | 每日房价 |
currencyCode | String | 币种 |
rateCode | String | 房价码 |
activityId | String | 活动Id |
isCanCancel | Bool | 是否可以取消 |
lastCancelTime | DateTime | 最晚取消时间 (H5需要) |
cancelDesc | String | 取消政策 |
lastHoldTime | DateTime | 最晚保留时间 |
isSendMessage | Bool | 预订短信是否已发送 (H5需要) |
createTime | Date | 下单时间 |
payStatus | String | 订单付款状态 NONE:未支付 PAY:已支付 REFUND:已退款 注:针对总对总结算订单,下单流程是先下单,下单成功再去扣款,扣款成功,返回订单号,扣款失败会马上取消订单,在取消订单过程中,客户来重试下单或查询订单,会返回bookStatus=R和订单号给客户,但实际在客人没有马上办理入住的情况下会取消订单,造成客人到店无可入住的订单,现可以根据bookStatus=R并且payStatus=PAY判断订单预订并支付成功,如果bookStatus=R并且payStatus=NONE在客人没有马上办理入住的情况下会取消订单,取消成功bookStatus=X(此时不关心payStatus),由于客人办理入住导致取消失败,产生的费用需要正常结算 |
checkInPolicyDesc | String | 入住政策,H5新增字段,接口还未实现 |
outerHotelRefId | String | 第三方酒店订单ID(雅高) |
travelMoney | String | 差标金额 |
pmsAdapterOrderStatus | String | 实际订单状态 R:预订成功 I:入住 O:离店 N:NoShow E:完成 X:取消 |
bookerPriceType | String | 预订价格类型 |
bookerPersonMobile | String | 绑券会员手机号或个人价手机号 |
DailyPriceResponseDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
bizDate | DateTime | 营业日 |
afterTaxPrice | BigDecimal | 房价 |
afterTaxCNYPrice | BigDecimal | 人民币房价 |
返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"requestNo": "1701222124836",
"orderId": "R2000014133954927001",
"breakfastCount": 2,
"adults": 1,
"childs": 0,
"travelLevel": "",
"travelType": "COMPANY",
"linkMobile": "18302451065",
"linkEmail": "ceshizhuanyong@ceshi.com",
"linkFirstName": "赵七七/七七",
"linkLastName": "赵",
"bookerPersonFirstName": "张三/三",
"bookerPersonLastName": "张",
"hotelId": "2000014",
"hotelName": null,
"hotelAddress": null,
"brandCode": null,
"brandName": null,
"roomTypeId": "DR1",
"roomTypeName": null,
"checkInType": "DAY",
"checkInDate": "2023-11-29",
"checkOutDate": "2023-11-30",
"lastCheckoutTime": "2023-11-30 14:00:00",
"arriveTime": "2023-11-30 18:00:00",
"roomCount": 1,
"bookStatus": "R",
"businessType": "CREDIT",
"guaranteeMode": "FIRST_NIGHT",
"dailyPriceList": [
{
"bizDate": "2023-11-29",
"afterTaxPrice": 373,
"afterTaxCNYPrice": 373
}
],
"currencyCode": "CNY",
"rateCode": "Base-OCK-STD",
"activityId": "",
"isCanCancel": true,
"lastCancelTime": "2023-11-29 00:00:00",
"cancelDesc": "取消说明:是否可取消:是,最晚取消时间:2023-11-29 00:00:00,",
"lastHoldTime": "2023-11-29 20:00:00",
"isSendMessage": false,
"outerHotelRefId": null,
"pmsAdapterOrderStatus": "R",
"bookerPersonMobile": "",
"bookerPriceType": "COMPANY",
"createTime": "2023-11-29 09:42:05",
"bookerPersonId": "",
"travelMoney": "",
"payStatus": "PAY"
},
"echoToken": "6ed2ec7a-ee57-47c9-93f7-636cd6021712"
}
根据订单查询积分间夜赠送情况
接口地址:/order/getOrderScoreNightInfo
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM1016433543 |
cardPassWord | String | 公司卡密码 | 是 | A7A5C7DF-A1B2-469B-8361-A1AF85289571 |
orderId | String | 订单号 | 是 | R2000014065860371001 |
hotelId | String | 酒店Id | 是 | 2000014 |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"orderId": "R2000015071060289001",
"hotelId": "2000015"
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! |
message | String | 响应消息 |
content | HotelOrderScoreNightDTO | 入驻码信息 |
HotelOrderScoreNightDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
orderId | String | 订单号 |
hotelId | Decimal | 酒店Id |
orderScoreStatus | String | 积分状态 0 不是会员 1 未下挂或未认证 2 渠道不赠送 3 等待处理 4 处理完成 5 酒店不处理赠送 6 非本人本卡 7 取消订单 8 未获取到房费不赠送 9 下查询不到会员不赠送 10 订单noshow不赠送 11 非托卡不增送 12 账户异常无法赠送积分 |
realCheckInDate | Date | 入住日期 |
realCheckOutDate | Date | 离店日期 |
realRoomPrice | Double | 实际房费 |
realCheckInNight | Double | 实际入住间夜数 |
totalScore | Integer | 总赠送积分 |
totalNight | Double | 总累积间夜数 |
返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"orderScoreStatus": "4",
"orderId": "R2000015071060289001",
"hotelId": "2000015",
"realCheckInDate": "2023-10-01",
"realCheckOutDate": "2023-10-12",
"realRoomPrice": 345,
"realCheckInNight": 11,
"totalScore": 10000,
"totalNight": 11
}
}