步驟 1:設定沙箱

沙箱是 Google 錢包身分識別服務的測試環境。它會使用測試 ID 而非實際 ID,因此您可以在不影響實際工作環境資料的情況下,建構及偵錯整合。

根據預設,Google 錢包會在正式環境模式下執行,並使用真實身分證件。在這個步驟中,您會將測試裝置切換至沙箱模式,並設定伺服器,以便處理沙箱要求和回應。

本頁步驟

事前準備

步驟 A:為測試帳戶申請沙箱存取權

根據預設,系統會隱藏切換沙箱和正式版的選項。如要在測試裝置上啟用切換鈕,必須將 Google 帳戶加入沙箱許可清單:

  1. 使用 Google 錢包的 Google 帳戶填寫 Google Pay 沙箱存取權申請表單。
  2. 如果您在尚未正式推出數位身分證件的國家/地區進行測試,請一併將測試帳戶的 Gmail 地址傳送至 wallet-identity-rp-support@google.com。

步驟 B:將裝置切換至沙箱模式

  1. 在 Android 測試裝置上開啟「設定」應用程式。
  2. 輕觸畫面最上方的 Google 帳戶 / 個人資料相片 (會顯示你的名稱和「Google 服務與偏好設定」)。
  3. 如果系統提示,請選擇個人資料,然後輕觸「所有服務」。
  4. 前往「其他」類別,然後輕觸「TapAndPay 環境」。如果找不到「TapAndPay Environment」,請重新啟動裝置,然後從步驟 1 開始。如果還是沒有,請確認帳戶已加入沙箱許可清單 (步驟 A)。
  5. 輕觸下拉式選單,然後選取「SANDBOX」SANDBOX。

    TapAndPay 環境選取器

  6. 系統會顯示對話方塊,通知您環境已變更。輕觸「確定」,然後重新啟動裝置。

    環境變更確認螢幕截圖

  7. 重新啟動後,開啟 Google 錢包。如果看到下列對話方塊,請強制停止並重新開啟 Google 錢包,以便同步至沙箱環境:

    強制停止 Google 錢包對話方塊

步驟 C:確認裝置處於沙箱模式

  1. 開啟 Google 錢包應用程式 。
  2. 依序輕觸右上方的個人資料相片或帳戶 >「錢包設定」。
  3. 前往頁面底部。如果看到確認訊息顯示「SANDBOX」SANDBOX,表示裝置已設定為沙箱呼叫。如果沒有看到訊息,表示處於正式環境模式。
正式環境模式
圖 1:正式環境模式
沙箱模式
圖 2:沙箱模式

部分裝置不會在 Google 設定中顯示 Google 錢包。如要在這些裝置上開啟 Google 錢包設定,請使用 adb 搭配下列指令:

adb shell am start -n com.google.android.gms/com.google.android.gms.tapandpay.settings.TapAndPaySettingsActivity

切換回正式環境

重複步驟 B,但選取「PRODUCTION」而非「SANDBOX」。

Wear OS 裝置

如要在已連結的 Wear OS 裝置上啟用沙箱模式,請新增空白檔案並重新啟動:

adb shell touch /sdcard/Download/android_pay_env_override_sandbox
adb reboot

如要切換回正式環境,請刪除檔案並重新啟動:

adb shell rm /sdcard/Download/android_pay_env_override_sandbox
adb reboot

步驟 D:設定沙箱伺服器

雙向沙箱設定,顯示傳出的已簽署 OpenID4VP 要求,以及傳入的 Utopia 測試憑證驗證

在沙箱中,伺服器需要兩項資訊:

  1. 要求 Google 錢包沙箱信任的簽署憑證:
    • 依賴方:使用 Google 預先信任的沙箱測試金鑰組,以及下列中繼資料範例。您不需要提交表單。
    • 驗證者註冊商:使用自己的沙箱根 CA 核發的葉憑證簽署要求 (在 Google 將其新增至沙箱信任存放區後),並按照步驟 3.A:設定 CA 憑證設定檔和 CBOR 中繼資料中的說明,產生自己的 gw_rp_metadata_bytes。
  2. 回應驗證信任錨點:依賴方和驗證者註冊商都必須將 Utopia 沙箱憑證新增至伺服器的信任存放區,才能驗證沙箱測試 ID 的回應。

沙箱測試金鑰和中繼資料 (仰賴方)

如要在沙箱環境中測試經簽署的要求,而不註冊自己的正式版金鑰,可以使用下列測試金鑰組。這些金鑰在沙箱環境中已預先信任。

操作說明

  1. 使用測試私密金鑰簽署要求 (JWS)。
  2. 在要求的 x5c 標頭中嵌入測試公開憑證。
  3. 將 client_id 設為這張憑證的 x509_hash。如要瞭解如何計算雜湊,請參閱「經簽署的要求」。
  4. 將 client_metadata 中的 gw_rp_metadata_bytes 設為下列測試依賴方中繼資料 (Base64url CBOR)。

私密金鑰 (PEM):

-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggRmIZIHQhXcYIeZ7
KSqS/WwJrsOetdI8ZE4HG0fd+3uhRANCAAR3GR6mdt/NOErO7+XtKqo7orgXWPMI
jEQDeE1PP4KWXTBAhuewPvF8uOiYakz5Jqd1kEFKfiecZEZRrLnC7U+e
-----END PRIVATE KEY-----

仰賴方中繼資料 (Base64url CBOR):

2BhY56Juc2NoZW1hX3ZlcnNpb25idjFnZGlzcGxheaNsZGlzcGxheV9uYW1leBhURVNUIFVTRSBPTkxZIFNhbmRib3ggUlBobG9nb191cml4YWh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3Byb2R1Y3Rsb2dvcy9nb29nbGVnL3Y2L3dlYi02NGRwL2xvZ29fZ29vZ2xlZ19jb2xvcl8xeF93ZWJfNjRkcC5wbmdycHJpdmFjeV9wb2xpY3lfdXJpeCNodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeQ

仰賴方中繼資料 (CBOR 傾印):

#24# .bstr

{
  "schema_version": "v1",
  "display": {
    "display_name": "TEST USE ONLY Sandbox RP",
    "logo_uri": "https://fonts.gstatic.com/s/i/productlogos/googleg/v6/web-64dp/logo_googleg_color_1x_web_64dp.png",
    "privacy_policy_uri": "https://policies.google.com/privacy"
  }
}

公開憑證 (PEM):

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            97:99:aa:8b:09:93:5a:20:c1:8b:27:6c:e2:da:91:97:f2:b7:79:8d
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: O=Google, OU=Wallet, CN=TEST USE ONLY Sandbox RP
        Validity
            Not Before: Jun  2 00:39:54 2026 GMT
            Not After : Jun  2 00:39:54 2027 GMT
        Subject: O=Google, OU=Wallet, CN=TEST USE ONLY Sandbox RP
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:77:19:1e:a6:76:df:cd:38:4a:ce:ef:e5:ed:2a:
                    aa:3b:a2:b8:17:58:f3:08:8c:44:03:78:4d:4f:3f:
                    82:96:5d:30:40:86:e7:b0:3e:f1:7c:b8:e8:98:6a:
                    4c:f9:26:a7:75:90:41:4a:7e:27:9c:64:46:51:ac:
                    b9:c2:ed:4f:9e
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                29:CA:DA:07:9B:1F:68:FA:80:01:E1:68:E3:38:E8:5A:5C:28:B1:6A
            X509v3 Authority Key Identifier:
                29:CA:DA:07:9B:1F:68:FA:80:01:E1:68:E3:38:E8:5A:5C:28:B1:6A
            X509v3 Basic Constraints: critical
                CA:TRUE
            1.3.6.1.4.1.11129.10.1:
                . ...?..!H.Z\j...uT2. .u.:.O.... 0
    Signature Algorithm: ecdsa-with-SHA256
    Signature Value:
        30:46:02:21:00:91:94:fa:b9:85:82:92:bd:6a:98:44:73:ec:
        30:26:1f:92:01:8f:5b:06:d7:8f:21:34:dc:76:f0:89:3c:04:
        8c:02:21:00:ae:3e:9d:46:99:bd:63:7a:cc:59:30:66:48:d0:
        75:cc:c9:82:07:ca:39:f1:f0:df:2b:07:7b:32:b9:5b:3f:0a

-----BEGIN CERTIFICATE-----
MIICFDCCAbmgAwIBAgIVAJeZqosJk1ogwYsnbOLakZfyt3mNMAoGCCqGSM49BAMC
MEUxDzANBgNVBAoMBkdvb2dsZTEPMA0GA1UECwwGV2FsbGV0MSEwHwYDVQQDDBhU
RVNUIFVTRSBPTkxZIFNhbmRib3ggUlAwHhcNMjYwNjAyMDAzOTU0WhcNMjcwNjAy
MDAzOTU0WjBFMQ8wDQYDVQQKDAZHb29nbGUxDzANBgNVBAsMBldhbGxldDEhMB8G
A1UEAwwYVEVTVCBVU0UgT05MWSBTYW5kYm94IFJQMFkwEwYHKoZIzj0CAQYIKoZI
zj0DAQcDQgAEdxkepnbfzThKzu/l7SqqO6K4F1jzCIxEA3hNTz+Cll0wQIbnsD7x
fLjomGpM+SandZBBSn4nnGRGUay5wu1PnqOBhTCBgjAdBgNVHQ4EFgQUKcraB5sf
aPqAAeFo4zjoWlwosWowHwYDVR0jBBgwFoAUKcraB5sfaPqAAeFo4zjoWlwosWow
DwYDVR0TAQH/BAUwAwEB/zAvBgkrBgEEAdZ5CgEEIgQg5taUP70bIUiJWlxqkwYP
dVQyoyCvdaw62E8u4ASBIDAwCgYIKoZIzj0EAwIDSQAwRgIhAJGU+rmFgpK9aphE
c+wwJh+SAY9bBtePITTcdvCJPASMAiEArj6dRpm9Y3rMWTBmSNB1zMmCB8o58fDf
Kwd7MrlbPwo=
-----END CERTIFICATE-----

沙箱 IACA 根憑證 (所有合作夥伴)

在沙箱中佈建的測試 ID 會由 Google 的沙箱核發機構 (Utopia) 簽署。如要以加密方式驗證沙箱測試身分憑證傳回的回應 issuerAuth 簽章,請將這個根憑證新增至驗證器的信任存放區 (請勿在正式環境中信任這個憑證):

環境 核發單位/國家/地區 憑證類型 IACA 根憑證
沙箱 Utopia 身分憑證 (com.google.wallet.idcard.1) 下載 Utopia Sandbox 憑證

如需支援的美國各州和國家/地區的正式環境 IACA 根憑證,請參閱「支援的核發機構和 IACA 憑證」。

沙箱運作時間

沙箱環境不像正式環境,沒有正常運作時間服務水準協議。如果遇到疑似與沙箱服務中斷有關的錯誤,請等待一個美國工作天,再與我們聯絡。服務中斷問題通常會在這段時間內自行解決。由於可能發生停機,請勿將任何重要發布程序設計為依賴沙箱環境。

下一步

步驟 2:建立測試 ID →