執行和設定
為旅客帶來超越點數或里程的價值
無論您的計畫如何定義,只要借助白牌範本,旅客就可獲得會員幣,並在購買旅遊行程時兌換獎勵。這份文件會簡介可用的會員計畫作業,並為您說明在測試及實際執行環境中執行服務的流程。
您將利用 JSON 承載提供標準的 RESTFul 服務。建議每個 API 要求都使用存取標記和 JSON Web 標記。呼叫 API 時需要執行其他安全性步驟,且要求和回應中的任何敏感資料元素均會經過加密。
設置範本網站時,您可以選擇設定,只要旅客獲得的會員幣來自於您所選取的業務範圍,即可兌換;
或者旅客也可以與 Expedia 旗下品牌網站的客服專員聯繫,以使用這些點數。我們的內部客服專員會使用帳戶資訊 API 驗證旅客資訊。驗證後,客服專員會利用點數庫 API 取得旅客的帳戶餘額,並協助處理預訂。
Expedia 啟用經理會與您一同合作,取得 SSO 設定等所有必要的詳細資料,包含:您的品牌或計畫名稱、計畫中的任何會員等級或劃分、會員幣名稱,以及兌換率 (例如,花費 $1 可獲得 100 點)。
您也需要提供下列資訊:
- 存取標記 API
- ClientId 和密碼
- 會員計畫兌換端點
- 您告知旅客的服務等級協定 (SLA)
我們會提供下列資訊,供您進行設定:
- OpenAPI 規格
- 如果您使用的是 Authorization2 參數,我們會提供 JSON Web 金鑰 (JWK) 端點
呼叫 API
Expedia 會使用存取標記來叫用 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 用於驗證,例如: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 網址發布公開憑證。
- 接著,建立具備簽發者、主體、對象和到期宣告的 JWT 標記,然後使用私密金鑰簽署標記。
- Expedia JWT 標記具備的金鑰識別碼為 kid 和 x5t,其中會包含公開金鑰憑證的指紋。
- 執行 API 呼叫時,您會從授權標頭中擷取 JWT,並使用 Expedia 的公開金鑰驗證 JWT 簽章。如果 Expedia 的 JWK 網址中有多個金鑰,您可以使用 kid 標頭辨識金鑰。
- 接著,請安排對 Expedia 的 JWK 端點進行 API 呼叫,以擷取公開金鑰憑證。
- 如果簽章驗證失敗,請重試邏輯以擷取新的憑證。