问题:
对于使用detail接口或者使用hotel.data.rp接口获取价格计划的预付规则,有些代理发现入住日当天是可以限时取消的,但是成单后确变为了不可取消。
解答:
-
这种情况一般是连住多天(2天及以上)的订单,在离线接口模式的hotel.data.rp接口文档最后的一段的《C、预付规则条件判断说明 》关于预付规则的说明中, 已经说明了,对于A类供应商,只需要判断第一天是否命中规则,即:拿客人的入住日,判断是否在规则有效期内即可,如果是B类供应商,则需要判断入离日期中的每一天 的规则是否都是可以取消的,取消规则取入离日期中最严的那条。 对于使用实时搜索模式的代理,一般使用detail接口获取并落地数据,在1.5以下版本,一律返回的是入住日当天的取消规则,在1.5版本,返回的是入离日期中每天的取消规则, 所以使用1.5以下版本获取detail接口数据,如果连住多天,并且多天内的预付取消规则不一致,则会发生下单后取消规则和下单前不一致的问题,所以建议代理将api版本统一 升级到1.5,但是这里还是有个问题,目前1.5版本没有像离线模式的hotel.data.rp接口一样,没有在rateplan返回供应商类型SupplierType, 所以即使升级到1.5版本,并返回了多条取消 规则,依旧不好解析规则,所以这里建议升级1.5版本并且在请求detail接口时,入参Options传入12,这样会在rateplan节点多返回一个子节点PrepayResult,这个节点中有最终的统一规则, 无需代理自己解析取消规则。
PrepayResult节点的字段如下:
"PrepayResult": { "CancelTimeLeft": -28800, "CacnelTimeRight": -28800, "CutType": 2, "CutValue": 100, "CancelDescription": "您的订单一经确认,不可变更或取消;如未能如约入住,将收取全额房费作为违约费用。", "CancelType": 4 }
hotel.detail接口入参Option传12,如果是现付产品,则返回GuaranteeResult节点,如果是预付产品,则返回PrepayResult, 关于这两个节点的字段解释如下:
分销hotel.detail接口RatePlan节点下
新增节点GuaranteeResult
MoneyArrivalTime Double 到店时间触发时的担保金额,货币类型为原币种,即所在RatePlan节点下的CurrencyCode
ArrivalTime String 需要担保的到店时间(格式:hh:mm),用户填写的最晚到店早于此时间,不需要关注MoneyArrivalTime,否则需要需要担保MoneyArrivalTime
RoomCount Integer 房量担保分割点,用户预订间数小于此值不需要担保,否则需要担保
GuaranteeType Integer 担保类型,,二进制位表示:1:到店时间担保,2:房量担保,3:预订即需担保,4:免担保
GuaranteeMoney Double 当前条件下需要担保的金额
NeedGuarantee Boolean 当前条件下是否需要担保
CancelTime Long 可以取消的时间点,单位秒,之前可以取消,之后不可取消,不可取消时:为-28800,免费取消时:Long.MAX_VALUE,其他情况下为北京时间的时间戳,单位秒
CancelDescription String 取消规则详细描述
CancelTag String 取消规则标签, 如果规则是任意取消和不可取消的没有这个字段和对应值, 限时取消和付费取消则会返回该字段
CancelType Integer 取消类型: 1. 免费取消、2.付费取消、3.可取消、4.不可取消
新增节点PrepayResult
CancelTimeLeft Long (废弃) 取消规则左分割时间点,单位秒,之前免费取消,不可取消时:-28800
CacnelTimeRight Long (废弃) 取消规则右分割时间点,单位秒,之后不可取消,不可取消时:-28800
CutType Integer (废弃) 扣费类型:0:不扣费,1:金额;2:比例;3:首晚房费,在CancelTimeLeft 到 CacnelTimeRight之间取消的扣费详情
CutValue Integer (废弃) 扣费值(罚金),原始币种,即所在RatePlan节点下的CurrencyCode
CancelDescription String 取消规则详细描述
CancelTag String 取消规则标签, 如果规则是任意取消和不可取消的没有这个字段和对应值, 限时取消和付费取消则会返回该字段
CancelType Integer 取消类型: 1. 免费取消、2.付费取消、3.可取消、4.不可取消
LadderVouch Boolean 是否阶梯取消
LadderParseList Object 取消规则明细
取消规则明细 LadderParseList
BeginTime Date 此时间点之前免费取消, 返回-28800为不可取消
EndTime Date 此时间点之后不可取消, 不可取消时:-28800
CutType Integer 扣费类型:0:不扣费,1:金额;2:比例;3:首晚房费
CutValue Decimal 扣费值(罚金),原始币种,即所在RatePlan节点下的CurrencyCode
Amount Decimal 扣费值 (国际酒店使用)
ShortDesc String 短文案
AmountRmb Decimal 扣费值 人民币
ExchangeRate Decimal 汇率
这里只需要关注PrepayResult即可