酒店

【国内&国际】为什么下单前可以取消,下单后取消规则变为不可取消更新时间:2023/02/09


    问题

            对于使用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即可