账单相关接口
企业查询支付信息
接口地址:payment/getPaymentInfo
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM0002220001 |
cardPassWord | String | 公司卡密码 | 是 | TestPassword |
orderIds | List<String> | 订单号 | 是 | ["R001","R001"] 每次最多传100个订单号 订单下单时间超过一年不支持查询(订单会归档) |
请求示例:
{
"cardId": "VCENTCRM0002220001",
"cardPassWord": "TestPassword",
" orderIds ": [
"R001",
"R001"
]
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | List<PaymentInfo> | 支付信息 |
PaymentInfo:
参数名 | 参数类型 | 备注 |
---|---|---|
orderId | String | 订单号 |
account | String | 支付账号 |
transactionId | String | 支付交易流水号 |
amont | Decimal | 金额 |
payMode | String | 类型: PAY:付款 REFUND:退款 |
paymentStatus | String | 支付状态: NONE:支付中 SUCCESS:成功 FAIL:失败 |
payType | String | 支付方式: NONE:其他 ALIPAY_HOLD:支付宝 CNAC_PAY:中航结 |
返回示例:
{
"code": "200",
"message": "成功!",
"content": [
{
"orderId": "R2000014030395147001",
"account": "ALIPAY_TEST_Account",
"amount": 167,
"transactionId": "2020083122001459351428640988",
"payType": "ALIPAY_HOLD",
"payMode": "PAY",
"paymentStatus": "SUCCESS"
},
{
"orderId": "R2000014030395147001",
"account": "ALIPAY_TEST_Account",
"amount": 167,
"transactionId": "2020083122001459351428640988",
"payType": "ALIPAY_HOLD",
"payMode": "REFUND",
"paymentStatus": "SUCCESS"
}
],
"echoToken": "8bad5923-f70d-4f3a-adbd-c7e2791f3f40"
}
企业查询房单信息
接口地址:bill/searchBillListByCompany
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM0002220001 |
cardPassWord | String | 公司卡密码 | 是 | TestPassword |
orderMonth | Date | 结算月份a | 是 | 2020-05-01 |
isAccordingDay | Boolean | 是否按照天查询 | 否 | false |
pageIndex | Int | 当前页 | 是 | 1 |
pageCount | Int | 每页数量 | 是 | 100 |
请求示例:
{
"date": "2020-05-01",
"cardId": "VCENTER10000000652",
"cardPassWord": "123321a",
"pageIndex": 1,
"pageCount": 100
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | SearchAccountStatementResponse | 账单信息 |
SearchAccountStatementResponse:
参数名 | 参数类型 | 备注 |
---|---|---|
pageIndex | Int | 当前页 |
pageCount | Int | 每页数量 |
totalPages | Int | 总页数 |
totalRows | Int | 总页数 |
rows | List<BillInfo> | 总页数 |
BillInfo:
参数名 | 参数类型 | 备注 |
---|---|---|
outerRefId | String | OA号 |
cardId | String | 企业卡号(ID) |
companyName | String | 企业名称 |
guaranteeMode | String | 支持的担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式(注:活动价下单时,验价及下单接口必须要传 activityId,否则会视为会员价),判断BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
brandName | String | 品牌名称 |
cityName | String | 城市名称 |
hotelId | String | 酒店ID |
hotelName | String | 酒店名称 |
orderId | String | 预订订单号 |
checkInDate | Date | 预订单入住日期 格式:yyyy-MM-dd HH:mm:ss |
checkOutDate | Date | 预订单离店日期 格式:yyyy-MM-dd HH:mm:ss |
days | Int | 天数 |
bookStatus | String | 订单预订状态 P:处理中(中间态) R:预订成功 E:完成 X:取消 |
totalPrice | Decimal | 预订单价格(整单) |
taxpayerType | String | 门店类型 |
invoiceType | String | 发票类型 |
taxDiffAmount | Decimal | 税点差额(整单) |
settleShiftTaxDiffAmount | Decimal | 结算金额不含税点差额(整单) |
settleContainTaxDiffAmount | Decimal | 结算金额含税点差额(整单) |
realCheckInStatus | String | 实际入住状态 R:预订成功 X:取消 I:入住 O:离店 N:NoShow S:临时挂账 |
checkInName | String | 入住人 |
realCheckInDate | Date | 实际入住时间 格式:yyyy-MM-dd HH:mm:ss |
realCheckOutDate | Date | 实际离店时间 格式:yyyy-MM-dd HH:mm:ss |
realCheckInAmount | Decimal | 当前房间的不含税点差的房费(房间) |
isConfirm | Bool | 是否已确认 |
confirmAmount | Decimal | 确认金额 |
remark | String | 备注 |
返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"pageIndex": 1,
"pageCount": 100,
"totalPages": 1,
"totalRows": 4,
"rows": [
{
"outerRefId": "HD2000014019242948001",
"cardId": "VCENTCRM0000046821",
"companyName": "测试公司",
"guaranteeMode": "FIRST_NIGHT",
"brandName": "汉庭",
"cityName": null,
"hotelId": "2000014",
"hotelName": "汉庭上海人民广场酒店",
"orderId": "R2000014019242948001",
"checkInDate": "2020-04-10 00:00:00",
"checkOutDate": "2020-04-12 00:00:00",
"days": null,
"bookStatus": "RESERVE",
"totalPrice": 662.0,
"taxpayerType": "GENERAL",
"invoiceType": "SPECIAL",
"taxDiffAmount": 0.0,
"settleShiftTaxDiffAmount": 662.0,
"settleContainTaxDiffAmount": 662.0,
"realCheckInStatus": "N",
"checkInName": "总对总测试数据",
"realCheckInDate": "2020-04-10 18:12:00",
"realCheckOutDate": "2020-04-12 10:11:00",
"realCheckInAmount": 662.0,
"isConfirm": false,
"confirmAmount": 0.0,
"remark": null
}
]
}
}
查询实际入住信息
接口地址:/order/queryOrderCheckInInfo
请求方式:POST
请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM1016433543 |
cardPassWord | String | 公司卡密码 | 是 | A7A5C7DF-A1B2-469B-8361-A1AF85289571 |
orderId | String | 订单号 | 是 | R2000014065860371001 |
hotelId | String | 酒店Id | 是 | 2000014 |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"orderId": "R2000014072885273001",
"hotelId": "2000014"
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! |
message | String | 响应消息 |
content | QueryOrderCheckInInfoDTO | 入驻码信息 |
QueryOrderCheckInInfoDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
orderId | String | 订单号 |
orderStatus | String | 预订单状态 |
roomCharge | Decimal | 当前房费 |
taxDiffAmount | Decimal | 税点差金额 |
checkInInfoList | List<OrderCheckInInfoDTO> | 实际入住信息 |
OrderCheckInInfoDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
receptionOrderId | String | 接待单id |
receptionStatus | String | 接待单状态 R:预订成功 X:取消 I:入住 O:离店 N:NoShow S:临时挂账 |
checkIn | Datetime | 实际入住时间 格式:yyyy-MM-dd HH:mm:ss |
checkOut | Datetime | 实际离店时间 格式:yyyy-MM-dd HH:mm:ss |
debitAmount | Decimal | 消费金额 |
debitAmountTax | Decimal | 消费金额税点差额 |
返回示例
{
"code": "200",
"message": "成功!",
"content": {
"orderId": "R2000014072885273001",
"orderStatus": "R",
"roomCharge": 7040,
"taxDiffAmount": 100,
"checkInInfoList": [
{
"receptionOrderId": "C2000014072885273001",
"receptionStatus": "O",
"checkIn": "2021-12-22 14:42:47",
"checkOut": "2021-12-23 15:08:56",
"debitAmount": 188.0,
"debitAmountTax": 188.0
}
]
}
}
预订单状态变更推送企业(回调接口)
注意:
- 如果华住推送的订单在客户自有系统中不存在,建议在客户系统中补录订单或发起取消,以免造成差异。有问题请及时联系华住相关人员配合处理。
说明:
B2B渠道订单状态发生变化后,实时推送订单状态。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容
对接预订单状态变更推送服务,企业需提供通知接口,通知接口标准参数定义见下:
请求方式: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));
注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容
请求参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
orderId | String | 订单号 |
hotelId | String | 酒店ID |
businessType | String | 业务模式 CASH:现付,例如:到门店付 COMPANY_ADVANCE:企业预付,例如:支付宝立即扣、中航结立即扣 CREDIT:信用,例如:担保金月结,担保金离店T+N扣款 |
outerRefId | String | OA关联号 |
bookStatus | String | 订单预订状态 P:处理中(中间态) R:预订成功 E:完成 X:取消 |
pmsAdapterOrderStatus | String | 实际订单状态 R:预订成功 I:入住 O:离店 N:NoShow E:完成 X:取消 |
cardId | String | 卡号 |
bookerId | String | 预订卡号 |
请求示例:
{
"bookStatus": "X",
"bookerId": "VCENTCRM1016431303",
"businessType": "CREDIT",
"cardId": "VCENTCRM1016431303",
"hotelId": "2000014",
"orderId": "R2000014071677475021",
"outerRefId": "0000000",
"cardId": "",
"bookerId": ""
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | String | 响应码 200 成功,其他为失败 |
message | String | 响应消息 |
注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次
预订单信息推送企业(回调接口)
注意:
- 如果华住推送的订单在客户自有系统中不存在,建议在客户系统中补录订单或发起取消,以免造成差异。有问题请及时联系华住相关人员配合处理。
说明:
B2B渠道客户预订成功后,实时推送预订单信息。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容
对接预订单信息,企业需提供通知接口,通知接口标准参数定义见下:
请求方式: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));
注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容
请求参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
orderId | String | 订单号 |
hotelId | String | 酒店ID |
businessType | String | 业务模式 1:现付,例如:到门店付 2:企业预付,例如:支付宝立即扣、中航结立即扣 4:信用,例如:担保金月结,担保金离店T+N扣款 |
outerRefId | String | OA关联号 |
bookStatus | String | 订单预订状态 P:处理中(中间态) R:预订成功 E:完成 X:取消 |
pmsOrderAdapterStatus | String | 实际订单状态 R:预订成功 I:入住 O:离店 N:NoShow E:完成 X:取消 |
cardId | String | 卡号 |
bookerId | String | 预订卡号 |
orgName | String | 酒店名称 |
orgCityId | String | 城市ID |
orgCityName | String | 城市名称 |
orgAddress | String | 酒店地址 |
roomTypeIdName | String | 房型名称 |
checkInDate | Date | 入住日期 格式:时间戳 |
checkOutDate | Date | 离店日期 格式:时间戳 |
bookerPriceType | String | 预订价格类型:0 个人,1 企业 |
roomCount | Integer | 房间数 |
bookerPersonId | String | 预订人员工编号 |
totalPrice | BigDecimal | 预订单总金额 |
isInternational | Integer | 国内国际类型: 0 国内,1 国际 |
travelType | String | 出行方式:因公 COMPANY,因私 PERSON |
createTime | Date | 创建时间 格式:时间戳 |
personPayDate | Date | 支付时间 格式:时间戳 |
costCenter | List<String> | 成本中心 |
linkName | String | 联系人姓名 |
linkMobile | String | 联系人手机号 |
linkPersonId | String | 联系人员工编号 |
dailyPriceLists | List<DailyPriceDTO> | 每日房价信息 |
DailyPriceDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
roomTypeId | String | 房型 |
bizDate | String | 营业日 格式:时间戳 |
currencyCode | Date | 币种 |
marketPrice | BigDecimal | 门市价 |
marketCnyPrice | BigDecimal | 人民币门市价(含税价) |
beforeTaxPrice | BigDecimal | 税前价(净价) |
beforeTaxCnyPrice | BigDecimal | 人民币税前价(净价) |
afterTaxPrice | BigDecimal | 税后价(含税价) |
afterTaxCnyPrice | BigDecimal | 人民币税后价(含税价) |
companyToGroupPrice | BigDecimal | 公司总对总价(含税价+税点差价) |
companyToGroupCnyPrice | BigDecimal | 人民币公司总对总价(含税价+税点差价) |
请求示例:
{
"bookStatus": "X",
"bookerId": "VCENTCRM1032595964",
"bookerPriceType": "1",
"businessType": 4,
"cardId": "VCENTCRM1032595964",
"checkInDate": 1716307200000,
"checkOutDate": 1716393600000,
"createTime": 1716375653000,
"dailyPriceLists": [
{
"afterTaxCnyPrice": 1838.44,
"afterTaxPrice": 234.00,
"beforeTaxCnyPrice": 1718.16,
"beforeTaxPrice": 218.69,
"bizDate": 1716307200000,
"companyToGroupCnyPrice": 1961.98,
"companyToGroupPrice": 249.72,
"currencyCode": "EUR",
"marketCnyPrice": 1838.44,
"marketPrice": 234.00
}
],
"hotelId": "9007366",
"isInternational": 1,
"linkMobile": "18357319905",
"linkName": "keqi Zhao",
"costCenter": [
"张三",
"李四"
],
"orderId": "900736600401551",
"orgCityId": "BER",
"orgCityName": "柏林",
"orgName": "3.0交叉销售测试酒店",
"outerRefId": "370244477",
"roomCount": 1,
"roomTypeIdName": "SU1",
"totalPrice": 1838.44,
"travelType": "COMPANY"
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | String | 响应码 200 成功,其他为失败 |
message | String | 响应消息 |
注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次
企业接待信息推送企业(回调接口)
注意:
- 如果华住推送的订单在客户自有系统中不存在,建议在客户系统中补录订单或发起取消,以免造成差异。有问题请及时联系华住相关人员配合处理。
说明:
B2B渠道订单退房后,预订单离店日+1天推送信接待单息。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容
对接订单接待信息推送服务,企业需提供通知接口,通知接口标准参数定义见下:
请求方式: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));
注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容
请求参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
bookRoomId | Long | 主键(按订单一个房间1条) |
outerRefId | String | OA号 |
employeeId | String | 预订人员工编号 |
cardId | String | 企业卡号(ID) |
companyName | String | 企业名称 |
guaranteeMode | String | 支持的担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式(注:活动价下单时,验价及下单接口必须要传 activityId,否则会视为会员价),判断BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
brandName | String | 品牌名称 |
cityName | String | 城市名称 |
hotelId | String | 酒店ID |
hotelName | String | 酒店名称 |
orderId | String | 预订订单号 |
checkInDate | Date | 预订单入住日期 格式:yyyy-MM-dd |
checkOutDate | Date | 预订单离店日期 格式:yyyy-MM-dd |
roomCount | Int | 房间数 |
days | Int | 间夜数(暂不推送) |
bookStatus | String | 预订单状态 R:预订成功 E:完成 N:NoShow X:取消 |
totalPrice | Decimal | 预订单价格(整单) |
realCheckInStatus | String | 实际入住状态 R:预订成功 X:取消 I:入住 O:离店 N:NoShow S:临时挂账 |
checkInName | String | 入住人姓名 |
linkName | String | 联系人姓名 |
linkEmployeeId | String | 联系人员工编号 |
roomTypeId | String | 房型 |
realCheckInDate | Date | 实际入住时间 格式:yyyy-MM-dd HH:mm:ss |
realCheckOutDate | Date | 实际离店时间 格式:yyyy-MM-dd HH:mm:ss |
realCheckInAmount | Decimal | 当前房间的不含税点差的房费(房间) |
realCheckInStatusName | String | 入住状态说明 |
taxpayerType | String | 纳税人性质 NONE:无,未知 GENERAL:一般纳税人 |
invoiceType | String | 发票性质 SPECIAL:专票 GENERAL:普票 |
taxDiffAmount | decimal | 税点差额(整单) |
settleShiftTaxDiffAmount | decimal | 结算金额不含税点差额(整单) |
settleContainTaxDiffAmount | decimal | 结算金额含税点差额(整单) |
remark | String | 备注 |
请求示例:
{
"bookRoomId": 673067597935149056,
"bookStatus": "R",
"brandId": "0002",
"brandName": "汉庭",
"cardId": "VCENTCRM1016431303",
"checkInDate": "2024-12-16",
"checkOutDate": "2024-12-18",
"cityId": "310100",
"cityName": "上海",
"companyConfirmStatus": "PENDING",
"companyName": "海康",
"confirmAmount": 0.00,
"employeeId": "hz00231",
"guaranteeMode": "NONE",
"hotelId": "2000014",
"hotelName": "汉庭上海人民广场酒店",
"invoiceType": "SPECIAL",
"isConfirm": false,
"linkEmployeeId": "hz00231",
"linkName": "张三",
"orderId": "R2000014071000733001",
"outerRefId": "0000000",
"realCheckInAdapterStatus": "O",
"realCheckInAmount": 247.00,
"realCheckInDate": "2024-12-16 20:10:12",
"realCheckInStatus": "O",
"realCheckOutDate": "2024-12-18 11:20:32",
"refundAmount": 0.00,
"roomCount": 1,
"roomTypeId": "DRX1",
"roomTypeName": "大床房A",
"settleContainTaxDiffAmount": 247.00,
"settleShiftTaxDiffAmount": 247.00,
"taxDiffAmount": 0.00,
"taxpayerType": "GENERAL",
"totalPrice": 247.00
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | String | 响应码 200 成功,其他为失败 |
message | String | 响应消息 |
注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次。
个人接待信息推送企业(回调接口)
注意:
- 如果华住推送的订单在客户自有系统中不存在,建议在客户系统中补录订单或发起取消,以免造成差异。有问题请及时联系华住相关人员配合处理。
说明:
B2B渠道订单退房后,预订单离店日+1天推送接待单信息。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容
对接订单接待信息推送服务,企业需提供通知接口,通知接口标准参数定义见下:
请求方式:POST
HttpHeaders增加参数验证:
time:取系统当前时间,格式:yyyy-MM-dd HH:mm:ss
注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容
请求参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
bookRoomId | Long | 主键(按订单一个房间1条) |
orderMonth | Date | 账期 |
cardId | String | 企业卡号(ID) |
bookerId | String | 预订公司卡(ID) |
orderId | String | 预订订单号 |
guaranteeMode | String | 支持的担保模式 NONE:无 FIRST_NIGHT:首晚担保 FULL_AMOUNT:全额担保 1、到付和预付区别 a、guaranteeMode是NONE,则支持到店付或者预付 b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付 2、担保模式使用 a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式) b、活动价按照房价码担保模式(注:活动价下单时,验价及下单接口必须要传 activityId,否则会视为会员价),判断BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码) 3、现付客户不能使用活动价注意事项 由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。 |
brandId | String | 品牌ID |
brandName | String | 品牌名称 |
hotelId | String | 酒店ID |
hotelName | String | 酒店名称 |
checkInDate | Date | 预订单入住日期 格式:时间戳 |
checkOutDate | Date | 预订单离店日期 格式:时间戳 |
roomCount | Int | 房间数 |
night | Int | 订单间夜 |
bookStatus | String | 预订单状态 R:预订成功 E:完成 N:NoShow X:取消 |
totalPrice | Decimal | 预订单价格(整单) |
linkName | String | 联系人姓名 |
linkEmployeeId | String | 联系人员工编号 |
roomTypeId | String | 房型 |
taxpayerType | String | 纳税人性质 NONE:无,未知 GENERAL:一般纳税人 |
employeeId | String | 预订人员工编号 |
outerRefId | String | 外部关联ID |
realCheckInDate | Date | 实际入住时间 格式:时间戳 |
realCheckOutDate | Date | 实际离店时间 格式:时间戳 |
realCheckInAmount | Decimal | 当前房间的不含税点差的房费(房间) |
realCheckInTotalAmount | Decimal | 当前房间的不含税点差的房费(整单) |
invoiceType | String | 发票性质 SPECIAL:专票 GENERAL:普票 |
remark | String | 备注 |
请求示例:
{
"bookRoomId": 673067597935149056,
"orderMonth": "2024-06-01",
"cardId": "VCENTCRM1016431303",
"bookerId": "VCENTCRM1016431303",
"orderId": "R2000014071000733001",
"guaranteeMode": "NONE",
"brandId": "0002",
"brandName": "汉庭",
"hotelId": "2000014",
"hotelName": "汉庭上海人民广场酒店",
"checkInDate": 1638201600000,
"checkOutDate": 1638288000000,
"roomCount": 1,
"night": 1,
"employeeId": "hz00231",
"bookStatus": "R",
"totalPrice": 247.00,
"linkEmployeeId": "hz00231",
"linkName": "张三",
"roomTypeId": "DRX1",
"taxpayerType": "GENERAL",
"outerRefId": "TXC0001",
"realCheckInDate": 1638268465000,
"realCheckOutDate": 1638268572000,
"realCheckInAmount": 247.00,
"realCheckInTotalAmount": 247.00,
"invoiceType": "SPECIAL",
"remark": "SPECIAL"
}
返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | String | 响应码 200 成功,其他为失败 |
message | String | 响应消息 |
注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次。
md5加密示例代码
public static String encodeMD5(String str) {
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] bytes = md5.digest(str.getBytes("utf-8"));
return StringUtils.parseToHEXString(bytes);
}