价格不匹配或其他价格变更异常

  1. 用户预订之前酒店出现价格变更,或者更新的货币换算不再与回复中返回房价之时的可用货币换算匹配。当房价与数据库中的数据不匹配时,会返回价格不匹配错误。
  2. 如果未真正发生“实时”价格变更但收到价格变更或不匹配消息,请检查预订中发送的所有值是否准确无误。rateKey、roomTypeCode、rateCode 或 total 中提交错误的数据/值会导致预订时出现价格不匹配错误。其中每个元素的值都必须与用户从可订空房回复中选择的内容相匹配。
  3. 当区域设置和货币与 customerIpAddress 的地理位置不匹配时,也会出现价格不匹配错误。在少数情况下,忽略该请求的 customerIpAddress 并重新提交预订可以解决错误。如果预订成功,则表明价格不匹配是由于未准确对已提交的值进行地理匹配引起的。根据这些项计算各地理位置的附加费值,如果这些值没有准确匹配,会导致附加费值与数据库中针对该分配的房价不匹配。

使用版本 3 次要版本 9 或更高版本返回的消息示例:

XML 回复示例

<ns2:HotelRoomReservationResponse xmlns:ns2 = "http://v3.hotel.wsapi.ean.com/">
   <EanWsError>
      <itineraryId>XXXXXX</itineraryId>
<handling>RECOVERABLE</handling>
      <category>PRICE_MISMATCH</category>
      <exceptionConditionId>1673</exceptionConditionId>
      <ErrorAttributes>
         <errorAttributesMap>
            <entry>
               <key>RATE_CHANGE</key>
               <value>121.89</value>
            </entry>
            <entry>
               <key>RATE_KEY</key>
               <value>4fc6fd3b-03b4-49e2-96cf-22b1aa4ad89b</value>
            </entry>
         </errorAttributesMap>
      </ErrorAttributes>
<presentationMessage>预订前检查最终预订价格失败。(请求的房价:120.89 美元)(新房价:121.89 美元)。请使用新房价重试。</presentationMessage>
      <verboseMessage>
Final Reservation Price Check failed before booking QuoteKey:4fc6fd3b-03b4-49e2-96cf-22b1aa4ad89b
RatePlan:status = Available
         roomTypeId = 19304
         ratePlanId = 200245232
....  [删除常规请求数据以提高简洁性] ...
Final Reservation Price Check failed before booking.(Rate Requested:120.89(USD)) (New Rate:121.89(USD)).Please try again with new rate.
      </verboseMessage>
      <ServerInfo
         serverTime = "13:52:51.848-0500"
         timestamp = "1318963971"
         instance = "167"/>
   </EanWsError>
   <customerSessionId>0AB81CA7-9955-D913-3162-AA666D9074FD</customerSessionId>
</ns2:HotelRoomReservationResponse>

JSON 回复示例

{
    "HotelRoomReservationResponse" : {
        "EanWsError" : {
            "itineraryId" : XXXXX,
            "handling" : "RECOVERABLE",
            "category" : "PRICE_MISMATCH",
            "exceptionConditionId" : 1673,
            "ErrorAttributes" : {
                "errorAttributesMap" : {
                    "entry" : [{
                        "key" : "RATE_CHANGE",
                        "value" : 151.8
                    },
                    {
                        "key" : "RATE_KEY",
                        "value" : "d18ce59c-82ba-4dbd-8f9a-5b04ec2283bd"
                    }]
                }
            },
            "presentationMessage" : "预订前检查最终预订价格失败。
(请求的房价:141.8 美元)(新房价:151.8 美元)。请使用新房价重试。",
            "verboseMessage" : "Final Reservation Price Check failed before booking               QuoteKey:d18ce59c-82ba-4dbd-8f9a-5b04ec2283bd \nRatePlan:status =                Available\nroomTypeId = 8282\nratePlanId = 8282\nrateRuleId = 200584001\nratePlanType =
Expedia CollectStandard\nratePlanName = Deluxe room with two double
....  [删除常规请求数据以提高简洁性] ...
Reservation Price Check failed before booking.(Rate Requested:141.8(USD)) (New Rate:151.8(USD)).
Please try again with new rate.",
            "ServerInfo" : {
                "@serverTime" : "17:06:46.659-0500",
                "@timestamp" : "1320358006",
                "@instance" : "42"
            }
        },
        "customerSessionId" : "0ABAA856-E9C5-4913-36B2-5C0F37906376"
    }
}

此错误在我们的系统中显示如下:

SUPPLIER : 13
FUNCTION : 3
CATEGORY : 25
HANDLING : 1
  SEVERITY : 0
  ITIN ID : XXXXX
  DB MSG:Expedia 预订供应商价格不匹配异常
  显示消息:所选客房的价格发生变更。
  详细信息:3000: 价格已发生变更。
  • 注意,handling=RECOVERABLE 意味着如果使用正确的处理,错误可以“恢复”。
  • 注意价格变更异常的 category=PRICE_MISMATCH
  • 另请注意,reservationStatusCode=DT。请求已被删除,并且当handling=RECOVERABLE by the affiliate时,不会由代理跟进,且不向用户发送电子邮件。

强制出现价格不匹配错误以用于测试

要强制出现价格不匹配错误回复,请在发送请求前更改预订请求中的“chargeableRate”值。例如,如果客房回复中返回用作 chargeableRate 的值为 150.00,则发送预订请求中的任何其他值,例如 151.00。发送返回的异常,您可以测试用于拾取错误属性以在新预订请求中重新发送的算法。

另请注意,这些错误会返回一个行程 ID,可以在后续预订请求中发送该行程 ID。通过使用同一行程 ID,可减少联盟伙伴统计信息中的已取消错误请求数量,并将同一用户针对同一预订请求的所有尝试汇总在同一个行程上。

请按照预订请求中的说明在重新提交的预订请求中使用行程 ID。

按照如下所述处理错误,从失败的预订中恢复:

  • minorRev=9 或更高版本可返回新的映射条目值,帮助您从该错误中恢复。这也同时省去了刷新任何可订空房结果以通过添加新价格值来获取最新价格的必要,因为,可从错误消息中自动获取最新价格,并将其用于重新发送预订。
  • 为用户显示新房价,以便接受新房价,避免在预期费用方面出现任何客户问题。
  • 在重新提交的预订中包含新的 rateKey 值。

适用于不使用版本 3 次要版本 9 或更高版本的应用程序的替代方法:

  • 刷新可订空房结果,并比较所选客房的房价

如果房价更低,则:

  • 使用新的更低价格和房价键重新提交预订请求
  • 在确认/预订结果中将预订的更低房价告知用户
  • 一些国际地区或国家的法律含义可能要求您在自动购买预订前通知用户新房价(即使房价比他们的最初选择更低)。请务必遵守您所在国家或地区的所有当地法律规定。

如果房价更高,则:

  • 通知用户房价已经变更
  • 显示初始选择的新房价和酒店的其他客房选择
  • 允许用户选择
  • 接受新房价并继续进行预订
  • 选择新客房并继续进行预订
  • 从前面的列表中选择新酒店

使用用户初始预订尝试中临时保存的输入提交新的预订选择。这为用户提供了方便,因为不需要再次输入相同的个人信息和付款信息。

如果针对同一家酒店的两次以上有效请求中都出现价格不匹配或房价变更错误,则表明该酒店出现问题,必须选择新酒店。