測試和偵錯

本文將說明如何利用 cURL 和 Google Pay API for Passes Merchant Center,在本機或遠端測試 Google Pay API for Passes 整合功能並進行偵錯。在發佈整合功能之前,您可以使用這些工具來測試整合功能在各項必要驗收測試中是否能正常運作。

驗收測試

您的整合功能必須通過相對應的驗收測試檢查清單上列出的所有測試,才能正式發佈。測試結束後,請與 Google 技術聯絡人員聯絡,共同規劃推出事宜。

使用 cURL 測試類別和物件

您的應用程式會使用 REST API 來建立、擷取及修改類別和物件。請使用 cURL 傳送要求來測試 REST 端點,或查看原始 JSON 回應。

取得 OAuth2 不記名憑證

如要取得 bearerToken,請安裝 oauth2l 工具並在下列指令中使用該工具。將 pathToPrivateKey 替換為你依照 OAuth 2.0 驗證一節中的說明所建立的服務帳戶金鑰路徑。

oauth2l fetch --scope wallet_object.issuer --credentials pathToPrivateKey --cache ""

你會在接下來的 cURL 指令中用到 bearerToken

取得特定的類別或物件

使用以下 cURL 指令取得特定類別或物件,以測試你的應用程式是否正確插入了類別或物件。將 walletObjectType 替換為你的類別或物件類型 (例如 loyaltyClassloyaltyObject),並將 resourceId 替換為你想取得物件或類別 ID 的 resourceId。你可以在下方的「列出物件」和「列出類別」這兩節中使用 cURL 指令來取得 ID 清單,然後在以下 cURL 指令中使用 ID 擷取特定物件或類別。

curl GET https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken"

列出類別

使用以下 cURL 指令列出特定 issuerId 或商家的所有類別,以測試你的應用程式是否插入了正確的類別。將 classType 替換為你的類別類型 (如 loyaltyClass),並將 issuerId 替換為你的 issuerId (也就是顯示在 Google Pay API for Passes Merchant Center「帳戶管理」畫面上的多位數數字)。

curl GET https://walletobjects.googleapis.com/walletobjects/v1/classType?issuerId=issuerId -H "Authorization: Bearer bearerToken"

列出物件

使用以下 cURL 指令列出特定 classId 的所有關聯物件,以測試你的應用程式是否插入了正確的物件。將 walletObjectType 替換為你的物件類型 (如 loyaltyObject),並將 classId 替換為物件的父項 classId

curl GET https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType?classId=classId -H "Authorization: Bearer bearerToken"

更新物件或類別

請使用以下 cURL 指令更新指定物件或類別:

  1. 取得物件或類別,然後儲存至檔案。將 walletObjectType 替換為你的物件類型 (如 offerObjectloyaltyClass),並將 resourceId 替換為你要取得物件 ID 的 resourceId。另外,將 myobjectfile.txt 替換為包含物件的本機檔案名稱。
    curl -X GET https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" > myobjectfile.txt
  2. 變更物件或類別中的欄位值。
  3. 將更新推送至物件或類別:
    curl -X PUT https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d myobjectfile.txt

新增訊息

使用以下 cURL 指令在特定物件或類別中新增訊息。將 walletObjectType 替換為你的物件類型 (如 offerObjectloyaltyObject),並將 resourceId 替換為你要設定訊息的物件 ID 的 resourceId

curl -X POST -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d '{"message":{"kind":"walletobjects#walletObjectMessage","header":"Welcome to Banconrista Rewards!","body":"Featuring our new bacon donuts.","displayInterval":{"kind":"walletobjects#timeInterval","start":{"date":"1985-04-12T23:20:50.52Z"},"end":{"date":"2085-04-12T23:20:50.52Z"}},"id":"1234"},"reviewStatus":"underReview"}'  https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId/addMessage

建立類別

使用以下 cURL 指令建立類別。將 classType 替換為你的類別類型 (如 loyaltyClass),並將 classJSON 替換為你產生的類別 JSON。

curl POST https://walletobjects.googleapis.com/walletobjects/v1/classType -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d  'classJSON'

測試 JWT 並進行偵錯

遇到問題時,檢查您建立的 JWT 往往能解決問題。如何測試 JWT 並進行偵錯:

  1. 將 JWT 複製到剪貼簿上。
  2. 造訪此 JWT 解碼器網站
  3. 將 JWT 貼到文字方塊中。
  4. 點選 [Decode JWT]。系統會將 JWT 解碼為兩個部分:Header (標題) 和 Claim (聲明)。
  5. 檢查酬載和周遭各個欄位,確認 JWT 是完整的。