リクエストURLの構築
リクエストURL(アタッチモジュールから結果を返すURL)は、ドメイン、エンドポイント、リクエストパラメータ、および署名パラメータで構成されています。この例は、2022年11月12日に予約された、2023年1月2日に出発し、2023年1月12日に帰着する、大人2名分のLAX行き確定便を示しています。
//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI
リクエストパラメータの構築
一般的に、リクエストパラメータには、目的地や旅行の開始日・終了日など、予約に関 する詳細情報が含まれます。この情報は、アタッチモジュール向けの推奨事項を生成するために使用されます。リクエストによっては、一部のパラメータは省略可能ですが、結果を返すためには必須のパラメータもあります。
利用可能なリクエストパラ メータ
| パラメーター | 説明 | サンプル値 | 必須 |
|---|---|---|---|
partnerId | Expediaから提供される文字列値で、リクエストパラメータ内でお客様の組織を識別するために使用されます | partnername_hotel_conf_overlay | 必須 |
bookingStatus | 予約ステータスを指定する文字列です。このステータスによって、付加料金の適用可否が決まります。予約ステータスが「保留中」または「失敗」の場合、付加料金は適用されません。 | 完了しました | 必須 |
bookingDateTime | 予約の日付を指定する文字列値です。これには、日付、時刻、およびタイムゾーンが含まれます。 ISO 8601形式 | #『2024-08-29T05:54:』第2話 エンコードされた値: 2024-08-29T05%3A54%3A02 | 必須 |
outboundEndDateTime | 目的地への到着を指定する文字列値です。日付、時刻、およびタイムゾーンがISO 8601形式で含まれています。 | #『2024-08-29T05:54:』第2話 エンコードされた値: 2024-08-29T05%3A54%3A02 | 必須 |
returnStartDateTime | 目的地からの出発日時を指定する文字列です。日付、時刻、およびタイムゾーンがISO 8601形式で含まれます。注:指定がない場合、旅行のデフォルト期間は7日間となります。 | #『2024-08-29T05:54:』第2話 エンコードされた値: 2024-08-29T05%3A54%3A02 | — |
locale | エクスペディアから提供される、予約が行われた言語を示す5文字の文字列です。 >> ロケールの詳細はこちらをご覧ください | en_US | 必須 |
currencyCode | エクスペディアから提供された、予約が行われた通貨を示す文字列 | JPY | 必須 |
destinationTLA | 目的地を示す、国際航空運送協会(IATA))の空港コードを表す3文字の文字列 注:リクエストURLには、このパラメータ(フライトを含む予約の場合)のいずれか、または latitude およびlongitude(フライトを含まない場合)を含める必要があります。 | LAX | 条件付きで必須 |
latitude そして longitude | 旅行先の座標を指定する、小数点以下最大12桁の浮動小数点値です。注:リクエストURLには、このパラメータ(フライトが含まれていない場合)または「destinationTLA」(フライトを含む予約の場合)のいずれかを必ず含める必要があります。 | 緯度=40.7141667 &longitude=-74.0063889 | 条件付きで必須 |
signature | 当社が提供する秘密鍵に基づいて生成していただく、27文字の英数字文字列です | ||
| BcND1F7KElTyGtyUHeXHd2JJLFs | 必須 | ||
numOfAdults | 予約に含まれる大人の人数を指定する整数。最小値は1です。 | 2 | — |
numOfChildren | 予約に含まれる子の人数を指定する整数 | 3 | — |
childAges | Comma-delimited予約に含まれるお子様の年齢を指定する整数配列です。numOfChildren が渡された場合にのみ必須となります。 | 5,4,2 | はい、numOfChildren が渡された場合は |
単純な旅行と、より複雑な旅行の両方における費用の目安をご理解いただくために、いくつかの事例を掲載しました。
リクエストURLの構築
すべてのリクエストURLには、ドメインとエンドポイント、その後にリクエストパラメータが続き、最後に秘密鍵で生成された署名で終わります。
秘密鍵
秘密鍵とは、エクスペディアと安全に共有される英数字の文字列であり、取引を検証するための署名を生成するために使用されます。文字数は36文字で、#と関連付けられています。partnerId.
ドメイン、エンドポイント、およびリクエストパラメータ
リクエストのURLは、ドメ インで始まっています。リクエストのURLについては、Expediaのドメイン(protocol-agnostic:、//xsell.expedia.com/)を使用することをお勧めします。URLの次の部分はリクエスト文字列であり、case-sensitiveのエンドポイント/xsell-pwa.js? とリクエストパラメータで構成されています。リクエストパラメータは # であるべきであることをお忘れなくUTF-8 percent-encoded.
手順1:リクエスト文字列を作成します
リクエスト文字列には、エンドポイントとリクエストパラメータが含まれます(ただし、ドメインは含まれません)。こんな感じになるはずです。
/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed
ステップ2:申請書に署名する
手順1で取得した文字列(先頭の「/」 を含みます)には、 hash-basedメッセージ認証アルゴリズム (HMAC-SHA1) を使用し、エクスペディアと共有されている秘密鍵を用いて。ほとんどの暗号ライブラリでは、生成される署名はバイナリ形式になります。
この暗号ハッシュ関数には、 RFC 2104 プログラミング言語やフレームワークについて。利用可能な実装には、以下のものがあります:
ステップ3:生成された署名をエンコードします
修正したものを用いて、バイナリ署名をエンコードしてください Base64 URL用として、Base64出力中の「+」および「/」という文字を、それぞれ「-」(ハイフン)および「_」(アンダースコア)に置き換え、URLで安全に扱えるようにします(参照: RFC 4648 (詳細については)。次のような感じになるはずです:
bj01fgT85mUiRmzxxSufSmlGpiIまた、Base64エンコードされた文字列からは 、= のパディング(ある場合)を削除する必要がある点にもご注意ください。
ステップ4:最終的なリクエストURLを作成する
手順3で生成した署名を、signature パラメータとして手順1の文字列に追加してください。署名は、常に最終的なリクエストURLの最後のパラメータである必要があります。
//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI
結果の文字列の先頭に、プロトコル(//、http://、またはhttps://)とドメイン(protocol-agnostic形式のURLには//xsell.expedia.com をお勧めします)を追加してください。
//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundStartDateTime=2024-10-22T11%3A55%3A00%2B08%3A00&outboundEndDateTime=2024-10-22T13%3A55%3A00%2B08%3A00&returnStartDateTime=2024-10-30T20%3A30%3A00%2B08%3A00&returnEndDateTime=2024-10-30T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2024-04-12T12%3A32%3A15%2B08%3A00&bookingId=123ABC&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI
ステップ5: JavaScriptコードを追加します
モジュールを表示したいページでは、最終的なリクエストURLを、JavaScript src 属性として指定してください。例 :
<<script src="//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI"></script>>
リクエストURLを作成したら、それをページのコードに組み込む準備が整いました。