署名を生成し、リクエストURLを作成します
署名の生成とリクエストURLの作成に関するチェックリスト:
| アイテム | Value | 備考 |
|---|---|---|
| 秘密鍵/プライベートキー | 以下の方々が共有しますExpedia Group. | 秘密鍵とは、Expedia Group間で安全に共有され、署名の生成に使用される英数字の文字列のことです。これは36文字の長さの文字列となり、. と関連付けられています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. ほとんどの暗号ライブラリでは、生成される署名はバイナリ形式となるため、鍵を元のバイナリ形式にデコードする必要がある場合があります。
RFC 2104で定義されているこの暗号ハッシュ関数については、さまざまなプログラミング言語やフレームワーク向けに、多くの実装が存在します。以下のリストは、利用可能な実装の一部です:
- Java
- JavaScript
- C#
- Python
- Ruby
手順6:生成されたバイナリ署名をエンコードします
バイナリ署名は、URL用に修正されたBase64を使用してエンコードします。この方法では、Base64出力の「+」および「/」という文字を、それぞれ「-」(ハイフン)および「_」(アンダースコア)に置き換え、URLセーフな形式にします(詳細については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. 宛のメール)に埋め込みます。
チェックリスト
以下の点をご確認ください:
- 署名
- 署名は正しい形式(Base64)で、16進数ではありません。
- 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をエクスペディアの本番環境に設定する必要があります。