例外メッセージのテキスト照合に基づいて、アクションの行程を判断しないでください。

  1. 例外の性質 (handling、category、message) に基づき判断します。
  2. リクエスト内のエラーが原因で発生した例外ではないことを確認します。
    • 正しい形式のサンプル リクエストを確認し、すべての項目と値を正しく送信していることを確認します。
    • 使用中のリクエストを正しい形式のリクエストと比較するには、デバッグ ワークシートが便利です。XML デモ ツールを使用してまったく同じリクエストを行い、その XML のリクエスト文字列をコピーし、項目ごとに比較します。
  3. 返された handling と category の両方およびユーザーの前のアクションに基づいて、アクションの行程を判断します。
    • ユーザーは別の施設を選択する必要があるか
    • ユーザーは入力データを訂正する必要があるか
    • handling=AGENT_ATTENTION が返された場合、予約リクエストのフォローアップのために担当者様が連絡することをユーザーに通知します。

サプライヤのエラー メッセージは予告なく変更され、サプライヤのシステムによって公開されることもないため、すべてのメッセージが網羅された一覧は存在しません。

  • エラーが発生したときにエラー メッセージを記録し、収集することで、エラーのデータベースを独自に構築できます。
  • システムで handling エレメント、category エレメント、および message エレメントを収集することで、最終的に、新しいメッセージを含め、サプライヤのリソースから返されるすべてのエラーを発生時に処理できるようになります。

一般的なレスポンス エレメント

エレメント タイプ 説明
customerSessionId (string) この値は、ユーザーのセッション アクティビティを追跡し、統計、ユーザーの動向、およびトラフィックの情報を収集するために返されます。ユーザー セッションを個別に記録していくために、すべてのリクエストにこの値を含めます。
EanWsError (EanWsError オブジェクト) ルート例外のノードです

EanWsError

エレメント タイプ 説明
itineraryId (long) EAN 旅程と関連付けられた ID。この値は、カスタマー サービス担当者への予約に関するすべてのお問い合わせに必要です。旅程 ID は予約リクエストでのみ返されます。予約リクエストのデータ検証エラーでは、itineraryID は返されません。 itineraryID が返される場合、必ずそれを参照番号としてクライアントに返します。itineraryID が返されない場合、itineraryID が生成されるプロセス以前のエラーであったことを意味します。
  • -1 が返される場合、旅程レコードは作成されておらず、リクエストのレコードは存在しません。
  • 旅程 ID が返される場合、カスタマー ケアへの予約に関するすべてのお問い合わせでこれを使用する必要があります。
  • 発生した予約リクエストのエラーがシステムに記録可能なものである場合、そのリクエストに対して旅程 ID が返されます。
  • クレジットカードの検証が失敗した場合など、旅程 ID をフォローアップのリクエストに含めることで、失敗した予約を訂正できる場合があります。これにより、失敗した旅程が成功した旅程で上書きされます。 これにより、同じクライアントによってエラーとなった旅程が複数生成されるのを防ぐことができます。正常に処理された予約が誤って上書きされないように、予約リクエストでの itineraryID の送信には十分注意してください。
  • handling=AGENT_ATTENTION も返される場合、そのエラーには、担当者様がフォローアップするためのフラグが立てられています。それ以外で、handling= UNKNOWN または UNRECOVERABLE が返される場合は、新しい予約リクエストを再送信する必要があることを示します。
  • 返される category は、同じ予約を再び試行できるのか (見積もりキーの失敗)、新しい施設を選択する必要があるのか (例 :満室) を示します。
  • 同じリクエストを再送信する場合、部屋データをリフレッシュして、変更された料金をユーザーに表示して選択し直すことができるようにします。その後、再送信される予約で新しい部屋データを送信します。
exceptionConditionId (int) 内部参照専用です。
presentationMessage (string) 返される表示エラー メッセージです。
verboseMessage (string) 具体的で詳細なエラー メッセージです。
handling (errorHandling オブジェクト) 例外の重大度とその処理方法を示す値です。
category (errorCategory オブジェクト) 例外の性質またはそれが発生した理由を示す値です。
ErrorAttributes
(エラー属性オブジェクト) 追加のエラー データです。このエレメントは通常、セキュア コードのクレジットカード処理や複数の場所が検出された場合のエラーの訂正に使用するデータを返します。
ServerInfo (ServerInfo オブジェクト)

(minRev 7 以降)

属性 :

  • serverTime = 現在の読み取り可能な形式の時刻
  • timestamp = 秒数で表した現在の時刻
    • シグネチャによる認証を使用しているときに認証エラーが発生する場合、この値を使用して sig パラメータを作成し、リクエストを再送信します。タイムゾーンが異なるため、アフィリエイトによっては、sig 値を生成するときに時刻が正確に一致しないことがあります。sig 値を作成してこの方法で認証する際は、この値を使用してエクスペディアのサーバーと時刻を同期します
  • instance = 内部サーバー インスタンス
例 : <ServerInfo serverTime="19:11:13.082-0500" timestamp="1311725473" instance="48" />

errorHandling

エレメント 説明
UNKNOWN 予約に失敗しました。失敗した理由は不明です。
RECOVERABLE これは通常、検証でエラーとなる、不正な入力値などのユーザー エラーを示します。解決するには、メッセージに示唆されているとおり、ユーザーにフィールドの入力値エラーを修正してもらいます。このエラーは、リフレッシュした値で予約を再送信することでも解決可能です。
UNRECOVERABLE このエラーが発生すると、ユーザーとカスタマー サービス担当者のいずれも解決できません。この予約を行うには、ユーザーはページをリフレッシュし、再度検索し直す必要があります。このエラーは、無効なリクエストの問題、使用できないデータ、またはサプライヤの問題により発生します。
AGENT_ATTENTION

旅程を記録できましたが、エラーまたは試みられた予約の性質から、以下のようになります。

  • 担当者が、再度予約を手動で完了する必要がある。
  • 不正のフラグが立てられた予約を検証する。
  • エラーが発生したことをユーザーに通知し、予約リクエストを続行するかを確認する。多くの場合、Web サイトに戻り、オンライン予約を再試行するよう通知されます。

errorCategory

エレメント 説明
UNKNOWN 不明な処理障害です
EXCEPTION 特定できないエラーです。
CREDITCARD クレジットカード処理のエラーです
DATA_VALIDATION ユーザー入力のエラーです
AUTHENTICATION 権限のないアクセスです。アクセス許可を認証できません。
UNABLE_TO_PROCESS_REQUEST リクエストを処理できません。
INVALID_PROPERTY_ID 無効なホテル ID または非アクティブなホテル ID です
RESULT_NULL 結果がありません
PROCESS_FAIL 処理に失敗しました
SOLD_OUT 満室です
RESTRICTED_CHECKIN 日付または宿泊数が、チェックインの制限規則を満たしていません
ONEROOM  
SUPPLIER_COMMUNICATION サプライヤとの通信が失敗しました。サプライヤの接続の問題です
DATA_PARSE_RESULT データ解析の問題です。
CORPORATE_RATE 料金には会社 ID が必要です
RES_NOT_FOUND 予約が見つかりません
RES_CANCELLED 予約はキャンセル済みです
HRN_QUOTE_KEY_FAILURE レート キーでエラーが発生しました。検索をリフレッシュして新しいレート キーを取得してください。
HRN_QUOTE_KEY_INVALID 無効なレート キーです。検索をリフレッシュして新しいレート キーを取得してください
SYS_OFFLINE サプライヤのシステムがオフラインであるか停止しています
SUPPLIER_INITITIALIZATION サプライヤに接続できません。
SUPPLIER_ROUTER_EXCEPTION サプライヤに接続できません。
EJB_CREATE_EXCEPTION 予約の例外が発生しました。
FINDER_EXCEPTION サプライヤの例外が発生しました
BML_FAIL サプライヤの例外が発生しました
PRICE_MISMATCH レートが変更されました。検索をリフレッシュするか新しい部屋または施設を選択して新しいレートを取得してください。
CSV_FAIL クレジットカードのセキュリティ コード値が不正です
PAYER_AUTH_REQUIRED クレジットカードは、予約リクエストおよびテスト予約の手順に記載されているように、セキュア コードによる VBV / 3DS クレジットカード処理が必要です。
PAYER_AUTH_FAILED セキュア コードが不正であるか、セキュア コードの処理に失敗しました
ITINERARY_ALREADY_BOOKED 既存の旅程がすでにシステムにあります

ErrorAttributes

エレメント タイプ
entry (entry オブジェクト)
entry
key (errorAttributesMap オブジェクト)
value (string)

errorAttributesMap

エレメント 説明
CC_TRANSACTIONSTATUS  
TRANSACTIONSTATUSMSG  
PA_TRANSACTIONSTATUS VBV / 3DS の詳細
XID VBV / 3DS の詳細
ACS_URL  
VBV / 3DS の詳細
PA_REQ VBV / 3DS の詳細
AUTH_CODE VBV / 3DS の詳細
PAS_TRANSACTION_ID VBV / 3DS の詳細
SUPPLIER_ERROR_CODE  

XML 例外のサンプル

<ns2:HotelRoomAvailabilityResponse size="0">
  <EanWsError>
    <itineraryId>-1</itineraryId>
    <handling>RECOVERABLE</handling>
    <category>DATA_VALIDATION</category>
    <exceptionConditionId>-1</exceptionConditionId>
    <presentationMessage>TravelNow.com cannot service this request.</presentationMessage>
    <verboseMessage>Data in this request could not be validated: Specified arrival date is prior to today's date.</verboseMessage>
    <ServerInfo serverTime="19:11:13.082-0500" timestamp="1311725473" instance="48" />
  </EanWsError>
  <customerSessionId>0ABAA825-0BE2-8912-CF12-59D0D9032F8</customerSessionId>
</ns2:HotelRoomAvailabilityResponse>