가격 불일치 또는 그 외 가격 변경 예외

  1. 사용자가 예약을 하거나 통화 변환을 업데이트하기 전에 숙박업소에서 가격이 변경되면 객실 요금이 응답에 반환된 시기의 가용성과 더 이상 일치하지 않습니다. 요금이 데이터베이스와 일치하지 않으면 가격 불일치 오류가 반환됩니다.
  2. '실시간' 가격 변경이 실제로 발생하지 않았지만 가격 변경 또는 불일치 메시지가 수신된 경우 정확성을 위해 예약에 전송된 모든 값을 확인해야 합니다. rateKey, roomTypeCode, rateCode 또는 총계에 잘못된 데이터/값이 제출되면 예약 시 가격 불일치가 발생합니다. 이러한 요소 값은 예약 가능 객실 응답에서 사용자가 선택한 값과 일치해야 합니다.
  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(USD))(새 요금: 121.89(USD)). 새 요금으로 다시 시도하세요.</presentationMessage>
      <verboseMessage>
         예약 전 최종 예약 요금 확인에 실패했습니다. QuoteKey: 4fc6fd3b-03b4-49e2-96cf-22b1aa4ad89b
         요금플랜: 상태 = 가능
         roomTypeId = 19304
         ratePlanId = 200245232
         ....  [간결함을 위해 일반 요청 데이터 삭제됨] ...
         예약 전 최종 예약 요금 확인에 실패했습니다(요청한 요금: 120.89(USD))(새 요금: 121.89(USD)). 새 요금으로 다시 시도하세요.
      </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" : "복구 가능",
            "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(USD))(새 요금: 151.8(USD)). 새 요금으로 다시 시도하세요.",
            "verboseMessage" : "예약 전 최종 예약 요금 확인에 실패했습니다. QuoteKey: d18ce59c-82ba-4dbd-8f9a-5b04ec2283bd \n요금플랜: 상태 =                가능\nroomTypeId = 8282\nratePlanId = 8282\nrateRuleId = 200584001\nratePlanType =
           Expedia CollectStandard\nratePlanName = 디럭스 객실(더블 침대 2개)
           ....  [간결함을 위해 일반 요청 데이터 삭제됨] ...
           예약 전 예약 요금 확인에 실패했습니다.(요청한 요금: 141.8(USD))(새 요금: 151.8(USD)).
           새 요금으로 다시 시도하세요.",
            "ServerInfo" : {
                "@serverTime" : "17:06:46.659-0500",
                "@timestamp" : "1320358006",
                "@instance" : "42"
            }
        },
        "customerSessionId" : "0ABAA856-E9C5-4913-36B2-5C0F37906376"
    }
}

시스템 오류입니다:

공급업체 : 13
      기능 : 3
      범주 : 25
      처리 : 1
      심각도 : 0
      ITIN ID : XXXXX
      DB MSG : Expedia 예약 공급업체 가격 불일치 예외
      프레젠테이션 메시지: 선택한 객실 요금이 변경되었습니다.
      자세한 정보 메시지: 3000: 가격이 변경되었습니다.
  • handling=RECOVERABLE은 올바른 프로세스가 사용되었을 때 "복구될 수 있음"을 나타냅니다.
  • 가격 변경 예외의 경우 category=PRICE_MISMATCH
  • reservationStatusCode=DT도 가능합니다. 제휴사에서 handling=RECOVERABLE이 반환되면 요청이 삭제되어 상담원이 후속 조치를 취하지 않으며 사용자에게 전자 메일이 전송되지 않습니다.

테스트 목적으로 가격 불일치 오류 강제 적용

가격 불일치 오류 응답을 적용하려면 전송 전에 예약 요청에서 "chargeableRate" 값을 변경합니다. 예를 들어 chargeableRate으로 사용된 객실 응답에 반환된 값이 150.00인 경우 예약 요청에 151.00과 같은 다른 값을 전송합니다. 반환된 예외를 사용하면 오류 속성을 선택하여 새 예약 요청에 다시 전송하는 알고리즘을 테스트할 수 있습니다.

또한 이러한 오류에 일정 ID가 반환되어 이후 예약 요청에 전송할 수 있습니다. 동일한 일정 ID를 사용하면 취소된 오류 요청이 감소하여 제휴사 통계에 포함되며 동일한 사용자가 시도한 동일한 예약 요청이 같은 일정을 가지게 됩니다.

다시 제출한 예약 요청에서 일정 ID를 사용하는 방법은 예약 요청 지침을 따르세요.

설명에 따라 오류를 처리하여 실패한 예약 복구

  • minorRev=9 이상은 새로운 맵 항목 값을 반환하여 이 오류 복구를 지원합니다. 또한 예약 가능 객실 결과를 새로 고침하지 않아도 새로운 가격 값이 포함된 현재 가격을 확인할 수 있으며 오류 메시지를 자동으로 검색하여 예약 재전송에 사용할 수 있습니다.
  • 사용자가 새 객실 요금을 수용할 수 있도록 새로운 가격이 표시되어 예상 금액에 대한 고객 불만을 방지할 수 있습니다.
  • 다시 제출한 예약에 rateKey 값을 포함합니다.

버전 3 부버전 9 이상을 사용하지 않는 앱의 대안:

  • 예약 가능 객실 결과를 새로 고침하여 선택한 객실 요금과 비교합니다.

요금이 더 적은 경우,

  • 새롭게 표시된 낮은 금액과 요금 키와 함께 예약 요청을 다시 제출합니다.
  • 확인/예약 결과에서 적은 금액으로 예약되었음을 사용자에게 알립니다.
  • 일부 국가나 지역에서는 예약을 자동으로 구매하기 이전에 사용자에게 새로운 요금을 알려야 하는(원래 선택한 요금보다 더 적은 경우에도 마찬가지) 법적 조항이 있습니다. 해당 국가나 지역의 모든 법적 요구사항을 따르시기 바랍니다.

요금이 더 많은 경우,

  • 사용자에게 요금이 변경되었음을 알립니다.
  • 원래 선택한 객실에 대한 새로운 요금과 함께 숙박업소의 추가 객실 선택 옵션을 제공합니다.
  • 사용자에게 다음과 같은 선택권을 제공합니다.
    1. 새로운 요금으로 예약 진행
    2. 새 객실을 선택하여 예약 진행
    3. 이전 목록에서 새로운 호텔 선택

사용자가 원래 예약 시도에서 임시로 저장한 입력 내용으로 새로운 예약 선택을 제출합니다. 이것은 사용자가 동일한 개인 정보와 결제 정보를 두 번 입력하지 않도록 하기 위한 것입니다.

동일한 숙박업소에 대한 유효한 요청에서 가격 불일치 또는 가격 변경 오류가 두 번 이상 발생하면 해당 숙박업소의 문제이며 새로운 호텔을 선택해야 합니다