使用者禮物卡註冊

禮物卡註冊 (登入) 功能可讓使用者搜尋禮物卡,並將禮物卡新增至 Google 錢包。系統會將使用者導向至行動版網站,以便他們完成相關程序,並隨後將卡片新增至 Google 錢包。

本指南將概略介紹必要的實作步驟,協助你為禮物卡方案啟用這項功能。

總覽

首先,請確認您先前已設定專案,並取得 Google Wallet API 的存取權。

如要為禮物卡方案實作登入功能,請按照下列四個步驟操作:

  1. 在 Google 錢包中設定測試類別,以便測試登入流程。
  2. 開發使用 Google 錢包 SharedDataType 的登入頁面。
  3. 建置可在使用者登入後將禮物卡推送回 Google 錢包的機制。
  4. 要求驗證及啟用。

在 Google 錢包中設定測試類別

請決定登入網址和會員方案標誌,然後使用 giftcardclass 中的 discoverableProgram 巢狀欄位來設定合適的值。

設定 discoverableProgram 中的值,即可建立含有登入功能的禮物卡方案草稿版本。為確保測試人員能看到這項資訊,請確認測試人員可存取您的 Google Pay 和錢包主控台。如要進一步瞭解如何與其他人分享 Google Pay 和 Wallet 主控台的存取權,請參閱瞭解使用者頁面

如要在開發過程中完成實作功能的驗證,請使用 Google Pay 和錢包主控台中的「與支援團隊聯絡」小工具與我們聯絡。在主控台中,選取主題中的「Google Wallet API」,然後選取子主題中的「禮物卡登入」

開發使用 Google 錢包使用者資料的登入頁面

使用者選擇新增禮物卡時,系統會將他們導向至你網站上的專屬網頁,方便他們完成登入程序。

您必須提供登入網址,讓使用者登入現有帳戶。

登入頁面必須符合下列規定:

  • 提供行動裝置友善的使用者體驗。
  • 讓使用者可在單一網頁中完成登入程序。
  • 使用有效憑證並採用 HTTPS 加密,確保使用者資料在傳輸時能安全無虞。
  • 確保登入頁面的正常運作時間至少達 99.9%。

顯示登入頁面時,Google 電子錢包會建立 Android WebView,並向你提供的網址發出 POST 要求。系統會以 application/x-www-form-urlencoded 內容類型和 UTF-8 編碼傳送 POST 要求,並透過其中的 SharedDataType 參數提供使用者資料。SharedDataType 參數的值為採用 Base64 編碼的 JSON 物件。

建置可立即將禮物卡推送回 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 節的規定)。