方法名称
hotel.data.booking
使用说明
本接口用于获取某个产品的存在性及其价格库存等信息,同时也可以检验产品的五大对象(HotelId、HotelCode、Room、RoomType和RatePlan)的状态,其任意一种不可用则产品不可用。
调用本接口请使用version大于等于1.13;
用于进入订单填写页面,获取实时的数据进行校验
价格是原始价格,需要自己计算DRR,返回的价格信息用法同hotel.data.rate;如果传入入参IsRatesWithDRR,可以得到计算后可卖的价格;
输入参数
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
ArrivalDate | 入住日期 | Date | N | 要求使用yyyy-MM-dd格式,例如:2022-12-09,其他格式不保证持续支持 |
DepartureDate | 离店日期 | Date | N | 要求使用yyyy-MM-dd格式,例如:2022-12-09,其他格式不保证持续支持 |
HotelId | 酒店编号 | String(8) | N | |
HotelCode | 酒店编码 | String(8) | N | |
RoomId | 展示房型编号 | String(10) | Y | 允许为空,当传入时会校验房型编号绑定关系 |
RoomTypeID | 销售房型编码 | String(10) | N | |
RatePlanId | 产品编号 | Int | N | |
PaymentType | 支付类型 | Enum | N | SelfPay--前台自付 Prepay--预付 |
IsRatesWithDRR | 返回的价格是否通过DRR计算 | Boolean | Y | 默认为false;如果为true则返回的Rates节点里面的价格为DRR计算后的,false则为原始价格。促销产品调用时,需要透传该字段。 |
MethodType | 调用监控 | Int | Y | 正常用户调用不用传,批量调用传入32,方便艺龙方对接口进行监控。 正常用户调用指的是由用户下单流程触发的校验接口调用,批量调用、非正常用户调用指分销商自己进行踩雷策略或其他操作引起的校验接口调用。 |
LittleMajiaId | 马甲Id | String | Y | 从hotel.detail接口获取,用于促销,促销产品调用时,需要透传该字段; 新接入搜索模式必传;建议历史已接入搜索模式分销商也将此字段全部传回;国内酒店马甲Id不再有30分钟限制 搜索模式所有产品必传 |
GoodsUniqId | 商品唯一标示 | String | Y | 从hotel.detail接口获取,用于促销,促销产品调用时,需要透传该字段; 新接入搜索模式必传;建议历史已接入搜索模式分销商也将此字段全部传回 搜索模式所有产品必传 |
NumberOfRooms | 房间数量 | Int | Y | 当促销产品调用时,需要传如具体房间数量 |
EarliestArrivalTime | 最早到店时间 | DateTime | Y | 请传入最早到店时间和最晚到店时间(不传时默认逻辑是:当天预订时,当前时间>=23点,最早最晚到店时间赋值为当天的23点59分,当前时间<23点时,最早到店时间为当前时间+30分钟,最晚到店时间为当前时间+60分钟;非当天预订时,最早到店时间为入住日的14点,最晚到店时间为入住日的15点). 要求使用yyyy-MM-dd HH:mm:ss格式 |
LatestArrivalTime | 最晚到店时间 | DateTime | Y | 请传入最早到店时间和最晚到店时间,请注意保证搜索时传入此参数与试单和成单时一致,否则对应担保规则结果会不尽相同,到店时间更改,担保类型为到店时间担保的订单取消规则和担保规则均可能发生变化. 要求使用yyyy-MM-dd HH:mm:ss格式 |
响应结果
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
RatePlan | 产品信息 | RatePlan | Y | 参考hotel.data.rp#RatePlan |
WeekendStart | 周末价格起始日 | Int | Y | 为0表示周末设置从周一开始 为0表示到周日结束,但是两个都为0表示无周末设置; 如果开始为3,结束为1,表示从周三到下周1都是周末设置 1代表周一,7代表周日 |
WeekendEnd | 周末价格结束日 | Int | Y | |
BookingRules | 预订规则 | BookingRule[] | Y | 参考BookingRule |
Inventories | 库存 | Inventory[] | Y | 参考Inventory |
Rates | 价格 | Rate[] | Y | 参考Rate |
ObjectEffectiveStatus | 对象状态 | ObjectEffectiveStatus | Y | v1.26新增。参考ObjectEffectiveStatus节点 |
meals | 到天餐食结果表格 | Meals | Y | 参考hotel.detail#Meals,注意:此为移位后餐食结果表格。根据餐食原始规则,当入住日期内全部为固定餐食或入住日期内全部为半固定餐食且固定餐食类型一样时,固定餐食中的早餐、午餐会向后移一天展示;动态餐食分别与入住日期对应,不会后移一天。hasMealTable为true,表示存在餐食表格。 |
PrepayResult | 预付规则结果 | PrepayResult | Y | 参考PrepayResult |
GuaranteeResult | 现付规则结果 | GuaranteeResult | Y | 参考GuaranteeResult |
DataSource | 数据来源 | Enum | Y | v1.32新增,特定情况使用,一般可忽略不管 DB-数据库 DC-直连 |
TotalRate | 总卖价 | Decimal | Y |
BookingRule节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
TypeCode | 规则类型 | Enum | N | NeedNationality:务必提供客人国籍 PerRoomPerName:您预订了N间房,请您提供不少于N的入住客人姓名 ForeignerNeedEnName:此酒店要求外宾务必留英文拼写 ,港澳台酒店出现这个字段的时候,所有人都需要填写英文名或姓名拼音 RejectCheckinTime:几点到几点酒店不接受预订 , 此处校验的是下单时的当前时间 NeedPhoneNo:务必提供联系人手机号(请加在联系人结点Contact上) |
RoomTypeIds | 关联的销售房型Id | String(500) | Y | all 表示所有房型 |
Description | 描述 | String(255) | N | |
DateType | 日期类型 | Enum | Y | BookDay –预订日期(订单的创建日期) |
StartDate | 开始日期 | Date | Y | |
EndDate | 结束日期 | Date | Y | |
StartHour | 每天开始时间 | Time | Y | 针对日期段内每天生效, 当TypeCode 为RejectCheckinTime时表示当前预订时间在StartHour到EndHour 区间内酒店不接受预订。当EndHour小于StartHour的时候是表示第二天的几点,如2:00表示第二天的2点。 |
EndHour | 每天结束时间 | Time | Y |
Inventory节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
HotelID | 酒店ID | String(8) | N | 这几个属性是业务主键。 Date表示的是某天的库存。 HotelCode关联搜索接口的RatePlan.HotelCode |
RoomTypeId | 房型ID | String(10) | N | |
HotelCode | 酒店编码 | String(8) | N | |
Date | 库存时间 | Date | N | |
Status | 库存状态 | Boolean | N | False-不可用 True-可用 |
Amount | 库存数量 | Int | N | 剩余的可知库存数量 |
OverBooking | 超售状态 | Int | N | 0---可超售,1—不可超售。可超售的时候即使Amount等于0也是可以继续销售的。 |
StartDate | 可用开始日期 | Date | N | 库存可用开始日期 |
EndDate | 可用结束日期 | Date | N | 库存可用结束日期 |
StartTime | 可用开始时间 | Time | N | 预订当天库存,须校验库存可用开始时间 |
EndTime | 可用结束时间 | Time | N | 预订当天库存,须校验库存可用结束时间; 若为23:59:59则为无限制; |
IsInstantConfirm | 当天库存是否支持即时确认 | Boolean | Y | V1.22新增,具体使用请见接口使用说明。 注意:此三个字段已无效,是否即时确认请以创建订单接口的返回值或者订单详情中的即时确认相关字段为准。 |
IC_BeginTime | 预订当天即时确认可用开始时间 | Time | Y | |
IC_EndTime | 预订当天即时确认可用结束时间 | Time | Y |
Rate节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
HotelID | 酒店编号 | String(8) | N | 这几个属性是业务主键 |
RoomTypeId | 房型编号 | String(10) | N | |
RateplanId | 产品编号 | Int | N | |
StartDate | 开始时间 | Date | N | |
EndDate | 结束时间 | Date | N | |
HotelCode | 酒店编码 | String(8) | Y | v1.13新增 |
Status | 状态 | Boolean | N | false--无效、true--有效 |
Member | 平日卖价 | Decimal | N | -1代表此房无价,无价和满房都不能进行预订 |
Weekend | 周末卖价 | Decimal | N | 同上,在周末时使用此价格,周末设置参考hotel.data.rp接口 |
MemberCost | 平日结算价 | Decimal | N | 同上,开通了结算价模式的接入方才可以使用 |
WeekendCost | 周末结算价 | Decimal | N | 同上,开通了结算价模式的接入方才可以使用 |
AddBed | 加床价 | Decimal | Y | V1.01新增 -1代表不能加床,0-免费加床,大于0表示加床的费用 |
PriceID | 价格ID | Long | Y | V1.08新增 |
CurrencyCode | 货币类型 | String | Y | V1.08新增 参考Currency |
UsedPromotionDayRoomValues | 每间的同程促销明细 | UsedPromotionDayRoomValue[] | Y | 每间的同程促销明细,参考 UsedPromotionDayRoomValue节点 |
ObjectEffectiveStatus对象状态
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
HotelIdStatus | HotelId 对应对象的状态 | Boolean | N | true --有效,false--无效 |
RoomStatus | RoomId对应对象的状态 | Boolean | N | |
RatePlanStaus | RatePlanI对应对象的状态 | Boolean | N | |
HotelCodeStatus | HotelCode对应对象的状态 | Boolean | N | |
RoomTypeStatus | RoomTypeId对应对象的状态 | Boolean | N | |
ProductRelation | RoomTypeId和RatePlanId是否存在绑定关系 | Boolean | N |
UsedPromotionDayRoomValue
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
RoomNumber | 房间号 | String | Y | |
PromotionDetailList | 促销明细 | PromotionDetail[] | Y | 此间促销明细 |
PromotionDetail
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
Amount | 促销金额 | Decimal | Y | |
PromotionType | 促销类型 | Int | Y | 促销类型 9:立减 |
常见错误码
错误码 | 解释 | 解决方案 |
---|---|---|
H001083 | 获取产品信息失败,可能酒店、房型和RatePlan无效或未关联,也可能无对应库存或房价 | 遇到这个问题,首先检查HotelId、RoomTypeId和RatePlanId对应关系是否正确(HotelId不要传HotelCode,RoomTypeId不要传RoomId)。如果对应正确,那么可能是库存失效导致的,大部分原因是因为数据更新不及时,用户搜索得到结果后过了一段时间才下单,此时数据已发生变化,无库存、满房、无价、不符合预定规则。该问题不可能完全杜绝,离线数据模式可以通过及时更新数据来减少。 |
H001083-1 | 对象状态无效 | 通过ObjectEffectiveStatus属性确认哪个对象已经无效,就可以将本地的改对象进行关闭 |
H008008 | 酒店挂牌等级不符 | 酒店挂牌等级已经发生了变化 |
H009001 | 获取的产品信息RatePlan无效 | 限价产品被过滤 |