註冊與登入

會員註冊與登入功能可讓使用者在 Google Pay 中搜尋您的會員方案、建立新帳戶,或登入自己的帳戶。系統會將使用者導向至行動版網站,以便他們完成相關程序,在 Google Pay 中輕鬆儲存會員卡。

本指南將概略介紹必要的建置步驟,協助您為會員方案啟用這項功能。

總覽

請先確認您先前已設定專案,並取得 Google Pay API for Passes 的存取權。如果尚未完成前述動作且無法存取,請按照連結與網站按鈕中的指示操作。

如要為您的會員方案建置註冊與登入功能,請按照下列三個步驟操作:

  1. 開發可利用 Google Pay 使用者資料的註冊/登入網頁。
  2. 建置可在使用者註冊/登入後將會員卡推送回 Google Pay 的機制。
  3. 要求驗證及啟用。

請確認註冊和登入網址、會員方案標誌,以及您要求使用者填寫的欄位,然後使用 loyaltyclass 中的 discoverableProgram 巢狀欄位來設定合適的值。

discoverableProgram 中設定值後,系統就會建立草稿版本,方便您測試支援註冊/登入功能的會員方案。只有可存取 Google Pay API for Passes Merchant Center 的使用者才能看到這個草稿版本。在開發過程中,您可以利用草稿版本確認建置的功能是否順利運作。

開發可利用 Google Pay 使用者資料的註冊/登入網頁

使用者選擇登入或註冊您的會員方案時,系統會將他們導向至您網站上的專屬網頁,方便他們完成註冊或登入程序。如果使用者選擇註冊,Google Pay 就會要求使用者決定是否與您共用他們的使用者資料。

您必須提供下列兩個可讓使用者完成相關動作的網頁。

  1. 可讓使用者登入現有帳戶的登入網址。
  2. 可讓使用者建立新帳戶的註冊網址。

登入網頁和註冊網頁必須符合下列規定:

  • 提供行動版的使用者體驗。
  • 儘可能減少註冊程序中的必填欄位數量。
  • 讓使用者可在單一網頁中完成登入或註冊程序。
  • 使用有效憑證並採用 HTTPS 加密,確保使用者的資料在傳輸時能安全無虞。
  • 確保登入網頁和註冊網頁的正常運作時間至少達 99.9%。

除了上述規定外,我們也建議您建立不須填寫任何表單即可註冊會員方案的程序,或是僅在網頁上要求使用者同意服務條款。

  • 使用者提供資料後,您就能利用這些資料建立帳戶並立即推送會員卡。
  • 您可以隨後再透過電子郵件將一次性的密碼寄送給使用者,或是提供可讓使用者設定密碼和選填帳戶資訊的連結。
  • 這麼做可以降低使用者中途退出註冊程序的可能性,因為您每增加一個步驟,都可能會讓使用者萌生放棄的念頭。

顯示登入或註冊網頁時,Google Pay 會建立 Android WebView,並將 POST 要求傳送至您提供的網址。系統會以 application/x-www-form-urlencoded 內容類型和 UTF-8 編碼傳送 POST 要求,並透過其中的 userProfile 參數提供使用者資料。userProfile 參數的值為採用 Base64 編碼的 JSON 物件。

視使用者選擇採取的動作和您指定使用者填寫的欄位而定,JSON 物件可能會包含下列欄位。

欄位 註冊 登入
電子郵件
firstName  
lastName  
addressLine [1-3]  
city  
state  
zipcode  
country  
phone  

如需 userProfile 包含的已解碼 JSON 物件範例,請參閱以下內容。

資源

{
  "firstName": "Jane",
  "lastName": "Doe",
  "addressLine1": "1600 Amphitheatre Pkwy",
  "addressLine2": "Apt 123",
  "addressLine3": "Attn:Jane",
  "city": "Mountain View",
  "state": "CA",
  "zipcode": "94043",
  "country": "US",
  "email": "jane.doe@example.com",
  "phone": "555-555-5555"
}

建置可立即將會員卡推送回 Google Pay 的機制

完成驗證 (登入) 或建立帳戶 (註冊) 後,您的網頁必須立即將使用者的會員卡推送回 Google Pay。

您可以重新導向至符合以下結構的連結,將會員卡推送回 Google Pay。如果您還不太瞭解如何為代表使用者會員卡的 LoyaltyObject 產生 JSON Web Token (JWT),請參閱為 LoyaltyObject 產生 JWT 一文。

https://www.android.com/payapp/savetoandroidpay/{jwt_generated}

網址的長度上限為 2000 個字元,您的連結不應超過此限制。經編碼並插入 JWT 的物件應精簡,應僅包含與使用者相關的資料。請試著將大部分的資料存放在物件的類別中,並在建立 JWT 前先建立類別。對於超過字元限制的大型物件,請考慮先透過 Google Pay API for Passes 建立物件,並且只傳送 JWT 中的物件 ID。

一般通訊流程

使用者完成註冊或登入程序的通訊流程如下圖所示。您必須負責建置在「Your Server」(您的伺服器) 之間的所有動作。

要求驗證及啟用

如果您在開發過程中尚未要求驗證及啟用,請提交註冊表單來提供您的登入和註冊網址、會員方案標誌,以及您要求使用者填寫的欄位。

收到您提交的詳細資料後,我們的支援小組就會建立草稿版本,以便您測試支援登入/註冊功能的會員方案。只有可存取您 Google Pay API for Passes Merchant Center 的使用者,以及您在註冊表單中加入「測試者的 Gmail 帳戶」許可清單的使用者才能看到這個草稿版本。

利用支援小組建立的草稿版本驗證建置的功能後,就能回覆由支援小組傳送的電子郵件,要求我們對您建置的功能進行最終驗證。

我們會全面審核您建置的功能,確認相關功能可與 Google Pay 應用程式順利運作後,我們就會公開發布您會員方案專用的會員註冊/登入功能。公開發布後,任何使用者都能查看會員方案並使用這項功能。

為了確保最佳的使用者體驗,我們會進行週期性的檢查,確保您的註冊/登入機制持續遵守相關的功能規定。如果發現不符之處,系統會傳送通知給您;在問題解決前,登入/註冊功能可能會遭到停用。

常見問題

  • 會員方案中使用的圖片是否有任何規定?
    • 是。您的圖片託管網址必須採用 HTTPS 通訊協定,否則將無法在 Google Pay 中顯示。
  • 是否有任何工具能簡化 JWT 的建置和偵錯作業?
    • 是。www.jwt.io 等平台可讓您在開發過程中為憑證解碼並進行偵錯,方便您驗證要提交的內容。請注意,Google 與該網站並無任何聯盟關係,也並未特別推薦您採用這類第三方服務。
  • 該如何正確處理採用 Base64 編碼的 userProfile 資料?
    • 請確認您在開發時全程採用 UTF-8 編碼。JSON 字串開頭採用 UTF-8 編碼,隨後則採用具備 NO_WRAP 和 URL_SAFE 選項的 android.util.Base64 編碼 (符合 RFC 3548 第 4 節的規定)。

註冊流程範例