シグネチャとビルドリクエストURLの生成
署名を生成し、リクエストURLを構築するためのチェックリスト:
| アイテム | Value | 備考 |
|---|---|---|
| 秘密鍵/秘密鍵 | 共有者Expedia Group. | 秘密鍵は、Expedia Groupによって安全に共有され、署名の生成に使用される英数字の文字列です。これは36文字の文字列で、.NET Frameworkに関連付けられますPartnerId。例: 6f437404-261d-4beb-a7fc-43b92f694831注: 安全な場所に保管し、server-side署名生成にのみ使用する必要があります。秘密鍵は、URL構築時にパラメータとして渡してはいけません。 |
| ドメイン | パートナードメイン | |
| エンドポイント | /xsell-redirect-pwa? | また、私たちのエンドポイントはcase-sensitiveですので、すべてのパラメータ名はこのドキュメントに示されているとおりに正確に綴らなければならないことに注意してください。 |
Step-by-stepガイド
ステップ1: 施設の結果ページへのディープリンクリクエストURLを構築します。
例のExpediaドメインの代わりにパートナードメインを使用して、施設結果ページへのディープリンクリクエストURLを構築します。ディープリンクガイド()に従って検索パラメータとトラッキングコードをフォーマットしてください。
ディープリンク・リクエストURL:
https://expedia.com/go/hotel/search/Destination/2025-12-22/2025-12-25?mdpcid=Expedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel&CityName=ORD&SortBy=distance&NumRoom=1&NumAdult1=3&NumChild1=2&Rm1child1age=9&Rm1child2age=6
ステップ2: # を使ってディープリンクURLをエンコードします。UTF-8
エンコードされたディープリンクURL:
https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3Fmdpcid%3DExpedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult1%3D3%26NumChild1%3D2%26Rm1child1age%3D9%26Rm1child2age%3D6
ステップ3:添付レートを有効にするために必要なすべてのパラメータを追加します。
outboundEndDateTime(符号化)+originTLA +returnStartDateTime(符号化)+destinationTLA +bookingDateTime(符号化)+PartnerId +(符号化 attachDL
ステップ4:署名生成用URLの作成(ドメインは 含めない)
エンドポイント + エンコードされたディープリンクURL +outboundEndDateTime (エンコード済み) +originTLA +returnStartDateTime (エンコード済み) +destinationTLA +bookingDateTime (エンコード済み) +PartnerId + エンコード済み attachDL
例
/xsell-redirect-pwa?url=https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3Fmdpcid%3DExpedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult1%3D3%26NumChild1%3D2%26Rm1child1age%3D9%26Rm1child2age%3D6&outboundEndDateTime=2025-10-30T20%3A12%3A17.928020Z&destinationTLA=LAS&returnStartDateTime=2025-11-10T20%3A12%3A17.928020Z&originTLA=JFK&bookingDateTime=2025-07-25T20%3A12%3A17.928020Z&attachDL=true&PartnerId=new-pwa-xsell-testing-airnz
ステップ5:リクエストへの署名/署名の生成
ステップ4で取得した文字列(URL)には、HMAC-SHA1アルゴリズムを用いて、以下の方法で共有された秘密鍵/秘密鍵を使って署名する必要があります。Expedia Group. ほとんどの暗号ライブラリでは、結果の署名はバイナリ形式なので、キーを元のバイナリ形式にデコード する必要があるかもしれません。
RFC2104で定義されたこの暗号ハッシュ関数は、いくつかのコンピュータ言語やフレームワーク用に多くの実装があります。以下のリストは、利用可能な実装のサブセットです:
- Java
- ジャバスクリプト
- C#
- Python
- Ruby
ステップ6:結果のバイナリ署名をエンコード
URLを安全にするために、Base64出力の+ と/ の文字をそれぞれ- (ハイフン)と_ (アンダースコア)に置き換えます(追加情報はRFC 4648を参照)。こんな感じです:
bj01fgT85mUiRmzxxSufSmlGpiI
さらに、パディング=(もしあれば)は、base64エンコードされた文字列から削除されるべきであることに注意することが重要です。
ステップ7: 最終リクエストURLの作成
以下のように最終的なディープリンクURLを構築します:
ドメイン + エンドポイント + エンコードされたディープリンクURL +outboundEndDateTime (エンコード済み) +originTLA +returnStartDateTime (エンコード済み) +destinationTLA +bookingDateTime (エンコード済み) +PartnerId +attachDL + エンコード済み signature
例 :
https://www.expedia.com/xsell-redirect-pwa?url=https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3Fmdpcid%3DExpedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult1%3D3%26NumChild1%3D2%26Rm1child1age%3D9%26Rm1child2age%3D6&outboundEndDateTime=2025-10-30T20%3A12%3A17.928020Z&destinationTLA=LAS&returnStartDateTime=2025-11-10T20%3A12%3A17.928020Z&originTLA=JFK&bookingDateTime=2025-07-25T20%3A12%3A17.928020Z&attachDL=true&PartnerId=new-pwa-xsell-testing-airnz&signature=3WQjtTHsSCRxrogs3xhY7edWfgE
ステップ8: 最終URLを航空会社post-bookingパス (e.g. メール) に埋め込みます。
チェックリスト
以下をご確認ください:
- 署名
- 署名は16進数ではなく、正しいフォーマット(Base64)です。
- Base64エンコーディングに変換する際、シグネチャは(文字列ではなく)整数として扱われます。
- 必要であれば、署名から
+を-に置き換えてください(Base64エンコーディングが自動的にこれを行うはずです):m6y13j0747-x/h81wEzR9jE1fco= - 必要であれば、署名から
/を_に置き換えてください(Base64エンコーディングが自動的に行うはずです):m6y13j0747-x_h81wEzR9jE1fco=
- 必要であれば、署名から
- Base64でエンコードされた文字列からパディング
=を除去します。 - 署名の長さは27文字です。
- 秘密鍵はクライアント側では公開されません。サーバ側では署名を生成するためだけに使用されるべきです。
- パラメーター
- すべてのパラメータ値はpercent-encoded UTF-8に従って入力します。
- 必要なパラメータはすべて渡されます。
- ドメインとエンドポイント
- エンドポイントは正しい
/xsell-redirect-pwa
- エンドポイントは正しい
- 最終的なリクエストURLは、ドメイン + エンドポイント + エンコードされたディープリンク
URL+outboundEndDateTime(エンコード済み) +originTLA+returnStartDateTime(エンコード済み) +destinationTLA+bookingDateTime(エンコード済み) +PartnerId+attachDL+ の組み合わせでなければなりません。signature
テスト
テスト/本番配備の前に、アタッチモジュールを確認してください。
最終的なリクエストURLを確認します:
- リクエストは、エンコードされたディープ リンクURLの検索条件に基づいて、施設の結果ページにリダイレクトされます。
注: Expediaソリューションは、本番環境のみをサポートしています。pre-productionでテストを希望するパートナーは、pre-productionをエクスペディアのプロダクションに向ける必要があります。