署名を生成し、リクエストURLを作成します
署名の生成とリクエストURLの構築に関するチェックリスト:
| アイテム | 発生元 | 備考 |
|---|---|---|
| 秘密鍵/プライベートキー | 以下の方々が共有します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のパラメータ
| パラメーター | タイプ | 必須 | 説明 | サンプル値 |
|---|---|---|---|---|
partnerId | 文字列 | Y | 提供元:Expedia Group. | partnername-POS-Ext-Flight-Conf-EmailDL |
url | 文字列 | Y | ディープリンクガイドに従い、パートナードメイン、検索パラメータ、およびトラッキングコードを使用して、ホテルの検索結果ページへのディープリンクリクエストURLを作成してください。トラッキングコード(mdpcid)が確実に含まれていること、および出力パラメータの値が適切に設定されていることをご確認ください。URL-encoded.>> ディーリンクガイドをご覧ください | url = https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3FMDPCID%3DExpedia-IE.DPS.en_IE.confemail.attachDL.Flight%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult-Room1%3D3%26NumChild-Room1%3D2%26Room1-Child1Age%3D9%26Room1-Child2Age%3D6 |
outboundEndDateTime | ISO 8601規格に準拠した日付の文字列表現です。 | Y | 旅行の目的地への到着日時を指定してください。ISO 8601規格に準拠した日付、時刻、およびタイムゾーンのみを含める必要があります。 このパラメータの値はエンコードする必要があります。 | 2025-10-30T20%3A12%3A17.928020Z |
originTla | 文字列(3文字) | Y | 旅行の出発地であるIATAの空港コードを指 定してください。 | LAS |
returnStartDateTime | ISO 8601規格に準拠した日付の文字列表現です。 | 往復の場合にのみ必要です | 目的地からの帰りの日付と時刻を指定してください。ISO 8601規格に準拠した日付、時刻、およびタイムゾーンのみを含めることができます。 このパラメータの値はエンコードする必要があります。 | 2025-11-10T20%3A12%3A17.928020Z |
destinationTla | 文字列(3文字) | Y | 旅行先のIATAの空港コードを指定してください。 | JFK |
bookingDateTime | ISO 8601規格に準拠した日付の文字列表現です。 | Y | ご予約の日時をご指定ください。ISO 8601規格に準拠した日付、時刻、およびタイムゾーンのみを含めることができます。 このパラメータの値はエンコードする必要があります。 | 2025-07-25T20%3A12%3A17.928020Z |
bookingStatus | 文字列 | ご指定がない場合は、ご予約が確定したものとみなさせていただきます。 | このパラメータの有効な値は、confirmed、pending、またはfailedです。注: 割引レートが適用されるのは、 bookingStatus がconfirmed である場合に限られます。 | confirmed |
attachDL | Boolean (ブール型) | Y | 割引適用率を有効にするには、この値を「true」に設定してください。 | true |
signature | 文字列 | Y | パートナーが、提供された秘密鍵に基づいてserver-sideを生成しました。Expedia Group. この文字列の長さは、ちょうど27文字です。生成されたバイナリ署名をエンコードしてください。 | BcND1F7KElTyGtyUHeXHd2JJLFs |
注: のリクエストパラメータは、大文字と小文字が区別されます。大文字と小文字の区別が間違っていると、エラーが発生します。
ディープリンクのリクエストURL:
https://expedia.com/go/hotel/search/Destination/2025-12-22/2025-12-25?MDPCID=Expedia-IE.DPS.en_IE.confemail.attachDL.Flight&CityName=ORD&SortBy=distance&NumRoom=1&NumAdult-Room1=3&NumChild-Room1=2&Room1-Child1Age=9&Room1-Child2Age=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.en_IE.confemail.attachDL.Flight%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult-Room1%3D3%26NumChild-Room1%3D2%26Room1-Child1Age%3D9%26Room1-Child2Age%3D6
ステップ3:アタッチレートを有効にするために、必要なすべてのパラメータを追加します
outboundEndDateTime(エンコード済み) +originTLA +returnStartDateTime (エンコード済み) +destinationTLA +bookingDateTime (エンコード済み) +partnerid +attachDL
手順4:署名生成用のURLを作成します(ドメインは含めないでください)
endpoint+ エンコード済みディープリンク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注:Expedia を、ご自身のブランド名に置き換えてください
ステップ5:リクエストへの署名/署名の生成
手順4で取得した文字列(URL)は、以下の者間で共有されている秘密鍵/個人鍵を用いて、HMAC-SHA1アルゴリズムで署名する必要があります。Expedia Group. ほとんどの暗号ライブラリでは、生成される署名はバイナリ形式となるため、鍵を元のバイナリ形式に復号する必要がある場合があります。
RFC 2104で定義されているこの暗号ハッシュ関数については、さまざまなプログラミング言語やフレームワーク向けに、多くの実装が存在します。以下のリスト は、利用可能な実装の一部です:
- Java
- JavaScript
- C#
- Python
- Ruby
手順6:生成されたバイナリ署名をエンコードします
バイナリ署名を、修正されたBase64URLを使用してエンコードします。この方法では、Base64URLの出力に含まれる「+」および「/」という文字を、それぞれ「-」(ハイフン)および「_」(アンダースコア)に置き換え、URLセーフにします(詳細についてはRFC 4648をご参照ください)。署名は正確に27文字である必要があります。
例
bj01fgT85mUiRmzxxSufSmlGpiI
9Wzh3Er5-ob35Hbxbk1ltyYHex4
FeW_4NNu4ITpGaSt1KZl-vLb9PIまた、Base64URLでエンコードされた文字列からは、パディング文字列「=」(存在する場合)を削除する必要がある点に留意することが重要です。
ステップ7:最終的なリクエストURLの作成
以下の要素を用いて、最終的なディープリンクURLを作成してください:
domain+endpoint + エンコード済みディープリンク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」パスに埋め込みます
チェックリスト
post-bookingのパス(メールなど)に埋め込む前に、以下の項目をご確認ください。
署名
- Base64URL形式(16進数ではありません)で。
- Base64URLエンコーディングに変換する際は、整数(文字列ではありません)として扱われます。必要に応じて、
+を-に、/を_に置き換えてください。例:m6y13j0747-x_h81wEzR9jE1fco=。 - Base64URLエンコードされた文字列から、
=のパディング(ある場合)を削除してください。 - 文字数はちょうど27文字です。
- 秘密鍵はクライアント側では公開されません。
パラメーター
- 値は次のとおりです:percent-encoded UTF-8
>> UTF-8パーセントエンコーディングについて詳しくはこちら。 - 必要なパラメータはすべて渡されています。
ドメインとエンドポイント
- 正しい値は
/xsell-redirect-pwaです。 - 最終的なリクエストURLは、
domain+endpoint+ エンコードされたディープレンクurl+outboundEndDateTime(エンコード済み)+originTLA+returnStartDateTime(エンコード済み)+destinationTLA+bookingDateTime(エンコード済み)+partnerid+attachDL+signature
テスト
テスト環境または本番環境へのデプロ イに先立ち、アタッチモジュールを確認してください。このリクエストは、エンコードされたディープレンクURLに含まれる検索条件に基づいて、施設 の検索結果ページにリダイレクトされる必要があります。
注: のExpediaソリューションは、本番環境でのみご利用いただけます。pre-production, でテストを行う場合は、pre-productionドメインをExpediaの本番環境のドメインに設定する必要があります。