會員註冊與登入功能可讓使用者在 Google 錢包中搜尋您的會員方案、加入或登入自己的帳戶。系統會將使用者導向至行動版網站,以便他們完成相關程序,再將卡片新增至 Google 錢包。
本指南將概略介紹必要的實作步驟,說明如何為會員方案啟用這項功能。
總覽
首先,請確認你先前已設定專案,並已取得 Google Wallet API 的存取權。
如要為您的會員方案實作註冊與登入功能,請按照下列四個步驟操作:
- 在 Google 錢包中設定測試類別,以便測試註冊/登入流程。
- 開發使用 Google 錢包
SharedDataType
的註冊/登入頁面。 - 實作在註冊/登入後將會員卡推送回 Google 錢包的功能。
- 要求驗證及啟用。
在 Google 錢包中設定測試類別
請確認你的註冊和登入網址、會員方案標誌,以及選擇的使用者欄位。然後使用 loyaltyclass
中的 discoverableProgram
巢狀欄位設定適當的值。
設定 discoverableProgram
中的值,即可建立支援註冊/登入功能的會員方案草稿版本。為確保測試人員能看到這項資訊,請確認測試人員可存取您的 Google Pay 和錢包主控台。如要進一步瞭解如何與其他使用者共用 Google Pay 和錢包主控台的存取權,請參閱瞭解「使用者」頁面。
如要在開發過程中完成實作功能的驗證程序,請使用 Google Pay 和錢包主控台中的「聯絡支援」小工具與我們聯絡。在控制台中,選取主題中的「Google Wallet API」,然後選取子主題中的「會員登入/註冊」。
開發會使用 Google 錢包使用者資料的註冊和登入網頁
使用者選擇登入或註冊會員方案後,系統會將他們導向您網站上的專屬頁面,方便他們完成註冊或登入程序。如果使用者選擇註冊,Google 錢包會要求使用者核准與您共用使用者資料。
你必須提供下列兩個網頁或其中之一,讓使用者完成相關動作。
- 可讓使用者登入現有帳戶的登入網址。
- 可讓使用者建立新帳戶的註冊網址。
登入和註冊網頁必須符合下列規定:
- 提供適合行動裝置的使用者體驗。
- 盡量減少註冊程序中的必填欄位數量。
- 讓使用者在單一頁面中完成登入或註冊程序。
- 使用有效憑證並採用
HTTPS
加密,確保使用者資料在傳輸時安全無虞。 - 確保登入和註冊網頁的正常運作時間至少達 99.9%。
除了上述規定外,我們也建議您建立無須填寫任何表單即可註冊會員方案的使用者,或是僅在網頁上接受服務條款。
- 使用
SharedDataType
中提供的使用者資料,即可建立帳戶並立即推送會員卡。 - 您可以隨後再透過電子郵件將動態密碼寄給使用者,或是提供使用者設定密碼和選填帳戶詳細資料的連結。
- 這麼做可以降低使用者中途退出註冊程序的可能性,因為您每增加一個步驟,就可能導致使用者流失。
顯示登入或註冊網頁時,Google 錢包會建立 Android WebView,並向您提供的網址發出 POST
要求。系統會以
application/x-www-form-urlencoded 內容類型和 UTF-8
編碼傳送 POST
要求,並透過其中的 SharedDataType
參數提供使用者資料。SharedDataType
參數的值是採用 Base64 編碼的 JSON 物件。
視使用者選擇的動作和您指定使用者填寫的欄位而定,JSON 物件可能包含下列欄位。
欄位 | 註冊 | 登入 |
---|---|---|
✓ | ✓ | |
firstName | ✓ | |
lastName | ✓ | |
地址行 [1-3] | ✓ | |
city | ✓ | |
state | ✓ | |
郵遞區號 | ✓ | |
country | ✓ | |
電話圖示 | ✓ |
如需 SharedDataType
中包含的已解碼 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 錢包的功能
完成驗證 (登入) 或建立帳戶 (註冊) 後,您的網頁必須立即將使用者的會員卡推送回 Google 錢包。
您可以重新導向至符合以下結構的連結,將會員卡推送回 Google 錢包。
https://pay.google.com/gp/v/save/{jwt_generated}
網址的長度上限為 2000 個字元,您的連結不應超過此限制。經編碼並插入 JWT 的物件應精簡,且僅包含與使用者相關的資料。請試著將大部分資料存放在物件的類別中,並在建立 JWT 前先建立類別。對於超過字元限制的大型物件,請考慮先在 Google Wallet API 建立物件,且在 JWT 中只傳送物件 ID。
一般通訊流程
使用者完成註冊或登入程序的通訊流程如下圖所示。您必須負責實作「Your Server」(您的伺服器) 之間的所有動作。
要求驗證及啟用
完成開發工作並測試註冊/登入流程後,請透過 Google Pay 和錢包主控台聯絡支援小工具提交要求。
我們會全面審查你實作的內容,確認功能可與 Google 錢包應用程式搭配使用後,就會公開發布你的會員方案的會員註冊/登入功能。公開發布後,任何使用者都能查看會員方案並使用這項功能。
為了確保提供最佳的使用者體驗,我們會定期檢查您實作的註冊/登入作業,確保持續遵守相關功能規定。如果發現不符之處,系統會通知您,登入/註冊功能可能會停用,直到問題解決為止。
常見問題
- 會員方案中使用的圖片是否有任何規定?
- 是。您的圖片託管網址必須採用
HTTPS
平台,否則將不會顯示在 Google 錢包中。
- 是。您的圖片託管網址必須採用
- 是否有任何工具能簡化 JWT 的實作和偵錯作業?
- 是。www.jwt.io 等平台可讓您在開發過程中為權杖解碼並進行偵錯,方便您驗證要提交的內容。請注意,Google 與該網站並無任何聯盟關係,也並未特別推薦您採用這類第三方服務。
- 如何正確處理採用 Base64 編碼的 SharedDataType 資料?
- 請確認你在開發時全程使用 UTF-8 編碼。JSON 字串開頭採用 UTF-8 編碼,隨後則採用具有 NO_WRAP 和 URL_SAFE 選項的 android.util.Base64 編碼。(符合 RFC 3548 第 4 節的規定)。