実装と設定
ポイントやマイル以上の価値を旅行者に提供
ホワイトレーベルテンプレートでは、旅行者がロイヤルティ通貨 (ただし、それを定義するのは貴社のプログラム) を獲得して旅行の購入に使用できます。このドキュメントでは、利用可能なロイヤルティオペレーションの概要と、テスト環境と本番環境でサービスを実装するためのプロセスについて説明します。
JSON ペイロードで標準的な RESTFul サービスを提供していただきます。すべての API リクエストにアクセストークンと JSON Web トークンを使用することをお勧めします。API を呼び出す際には追加のセキュリティステップがあり、リクエストとレスポンスのペイロードに含まれる機密データ要素は暗号化されます。
テンプレートサイトを設定する際には、顧客が獲得したロイヤルティ通貨を、貴社が選択したどの取扱商品でも利用できるようにすることができます。
顧客はエクスペディアブランドサイトエージェントに連絡して、ポイントを利用することもできます。エクスペディアの社内エージェントは、Account Information API を使用して旅行者の情報を検証します。検証されると、エージェントは Points Bank API を活用して旅行者の口座残高を取得し、予約をサポートします。
エクスペディアのローンチマネージャーが貴社と協力して、SSO の設定など、必要なすべての詳細を取得します (例 : ブランド名またはプログラム名、プログラム内の会員ステータスまたはセグメント、ロイヤルティ通貨名、獲得比率 (例 : $1 = 100 ポイント))。
以下については貴社からご提供いただく必要があります。
- アクセストークン API
- クライアント ID とシークレット
- ロイヤルティ利用エンドポイント
- 顧客に伝えたサービスレベルアグリーメント (SLA)
貴社側での設定のためにエクスペディアより以下を提供します。
- OpenAPI 仕様
- JSON Web キー (JWK) エンドポイント (Authorization2 パラメーターを使用している場合)
API 呼び出しの実行
エクスペディアではアクセストークンを使用して API を呼び出します。アクセストークンは、ベアラートークンとして認証 HTTP ヘッダーで提供されます。システムでは必要なリクエスト署名トークンを生成し、Authorization2 HTTP ヘッダーでそれを提供します。
認証エンドポイント
API 呼び出し用のアクセストークンを取得するには、まずクライアント ID とシークレットで認証サーバーを設定する必要があります。次に、POST : https://<your-oauth-endpoint>
呼び出しを使用してリクエストを実行します。
リクエスト
フィールド | 説明 | サンプル値 | フィールドタイプ | 必須/必須ではない |
---|---|---|---|---|
content-type | リクエストフォーマットを示す | application/x-www-form-urlencoded | 文字列 | 必須 |
grant_type | クライアントのログイン情報など、リクエストに対する認証の方法 | client-credentials&client_id=<client_id>&client_secret=<client_secret> | 文字列 | 必須 |
client_id | 登録されているアプリケーション識別子 | a17c21ed& | 必須 | |
client_secret | client_id に対応するシークレット | 必須 |
レスポンス
フィールド | 説明 | サンプル値 | フィールドタイプ | 必須/必須ではない |
---|---|---|---|---|
content-type | レスポンス本文フォーマットを示す | application/json | 文字列 | 必須 |
token_type | トークンの対象者 (提供するアクセスの種類を示す) | bearer | 必須 | |
access_token | client_id を参照するアクセストークン | 必須 | ||
expires_in | アクセストークンの有効期限 (秒) | 86400 | 必須 |
エラー
フィールド | 説明 | サンプル値 | フィールドタイプ | 必須/必須ではない |
---|---|---|---|---|
error | 無効なパラメーターなどのエラーが発生 | invalid_request invalid_client invalid_grant | 文字列 | 必須 |
errorMessage | ロギングと問題の調査に役立つカスタムエラーメッセージ | 文字列 | 必須 |
JWK エンドポイントレスポンス
検証に使用する JWK を取得できる URL を共有します (例 : GET : https:// <WLT_Domain>/keys/public-keys --header Authorization : Bearer - Partner_client_api_key
)。
フィールド | 説明 |
---|---|
alg | 署名アルゴリズム |
kty | 暗号鍵の種類 |
kid | 鍵の識別子 |
use | 鍵の使用目的 : 署名 (sig ) または暗号化 (enc ) |
x5t | X.509 証明書のサムプリント |
x5c | X.509 証明書チェーン |
expires_on | 証明書の有効期限 |
リクエストの署名
すべての API リクエストは JSON Web トークン (JWT) を使用して署名することをおすすめします。リクエストに署名する手順は以下のとおりです。
- 2048 ビットの CA 署名付き RSA 秘密鍵をエクスペディアが設定します。
- JWK URL を介してエクスペディアが公開証明書を公開します (前述の通り)。
- 次に、発行者、件名、対象者、期限クレームがある JWT トークンをエクスペディアが作成し、秘密鍵を使ってトークンに署名します。
- Expedia JWT トークンには、公開鍵証明書のサムプリントを含む鍵識別子 kid と x5t があります。
- API 呼び出しを実行する際には、貴社で認証ヘッダーから JWT を抽出し、エクスペディアの公開鍵を使用して JWT 署名を検証します。kid ヘッダーを使用して、鍵 (エクスペディアの JWK URL に複数の鍵が存在する場合) を識別します。
- 次に、エクスペディアの JWK エンドポイントへの API 呼び出しをスケジュールし、公開鍵証明書を取得します。
- また、署名検証に失敗した場合は、再試行ロジックを使用して新しい証明書を取得する必要があります。