JWT POST 要求方法

您可以選擇透過 JWT POST 要求方法為 Android 應用程式建立班機或活動票券類別及物件。如果您無法在系統儲存物件之前執行建立及插入物件的後端工作,那麼這種方法就能派上用場。此方法非常適合用於活動票券和登機證這類會隨時間建立許多類別的票證。

如要透過 Google Pay API for Passses 從 Android 應用程式中儲存登機證或活動票券,系統目前支援使用 JWT 連結和意圖這種方法。流程概述如下:

  1. 在儲存登機證之前不久,系統會透過 REST API 在後端建立類別。
  2. 當使用者登機報到或取得活動票券時,您的伺服器後端就會將 JWT 轉譯至代表物件的 Android 用戶端應用程式。
  3. 您已按照品牌規範在 Android 用戶端應用程式中加入「儲存至 Google Pay」按鈕。點選該按鈕後,系統就會開啟 URI 的 ACTION_VIEW 意圖,其路徑中包含 JWT。範例如下:
    https://pay.google.com/gp/v/save/{jwt_generated}
    

JWT POST 要求方法

如果您無法在系統儲存物件前執行建立及插入物件所需的後端工作,特別是在儲存活動票券或登機證這類票證時,建議您改用 JWT POST 要求方法來為 Android 應用程式建立類別與物件。流程概述如下:

  1. 當使用者登機報到或兌換活動票券時,您的伺服器後端就會將 JWT 轉譯至「同時」包含類別和物件的 Android 用戶端應用程式。
  2. 您已按照品牌規範在 Android 用戶端應用程式中加入「儲存至 Google Pay」按鈕。當您點選按鈕時,就會發生下列情況:
    1. POST 要求透過 HTTPS 將 JWT 傳送至 Google 端點。
    2. 系統會傳回產生的 HTTP 回應內容中的 URI,方便您用於開啟 ACTION_VIEW 意圖。

建立類別

只有在取得先前未曾儲存過的 class.id 時,後端才會建立新類別。因此,雖然您可能會透過 JWT 將類別詳細資料傳送至 Google 多次,後端仍會將該類別視為已儲存,而不會在每次儲存登機證時都建立新的類別。

更新類別

儲存第一個登機證之後,系統就會一併儲存物件和類別。正常情況下,您可以搭配使用 class.id 和 REST API 來執行 ADDMESSAGEGETLISTPATCHUPDATE 作業。

如要變更類別詳細資料,您必須使用類別更新 API。如果您已透過 class.id=XYZ 和某些其他類別詳細資料來建立類別,隨後又試著透過 class.id=XYZ 和不同的類別詳細資料來建立類別,那麼系統仍會保留原本的類別,不會套用任何變更。

JWT 格式

我們的 Google Pay API for Passess JWT 參考說明文件詳細說明了傳送 JWT 時應採用的格式。對於這個 payload 來說,您會傳送一個物件項目 (代表您要建立的物件) 及一個類別項目 (代表您要建立的類別)。

HTTP 要求

您可以使用 INSERT 方法在 JWT 中插入指定的類別和物件。

JWT INSERT 方法

在您提供 JWT 後,INSERT 方法會在 JWT 中插入指定的類別和物件。如果插入成功,要求就會傳回 200 HTTP 回應。

HTTP 要求

POST https://www.googleapis.com/walletobjects/v1/jwt/

授權

這項要求不需經過授權,不過 JWT 必須使用 RSA-SHA256 進行簽署,簽署金鑰為 OAuth 服務帳戶產生的金鑰。

要求內容

在要求內容中,請提供具有以下結構的資料:

{ “jwt” : string }

回應內容

如果成功的話,這個方法會傳回具有以下結構的回應內容:

{
    "saveUri": string,
    "resources": {
      "eventTicketClasses": [ eventTicketClass resource, ... ],
      "eventTicketObjects": [ eventTicketObject resource, ... ],
      "flightClasses": [ flightClass resource, ... ],
      "flightObjects": [ flightObject resource, ... ],
      "giftCardClasses": [ giftCardClass resource, ... ],
      "giftCardObjects": [ giftCardObject resource, ... ],
      "loyaltyClasses": [ loyaltyClass resource, ... ],
      "loyaltyObjects": [ loyaltyObject resource, ... ],
      "offerClasses": [ offerClass resource, ... ],
      "offerObjects": [ offerObject resource, ... ]
    }
}

開啟 saveUri 這個 URI 後,使用者即可將 JWT 中識別的物件儲存至 Google 帳戶。URI 傳回後只會維持一週的有效時間。

如要瞭解詳情,請參閱 JWT 端點參考資料

流程圖

如要瞭解流程圖,請參閱一般 API 流程