第 4 步:测试集成

在正式发布之前,请使用测试身份证件在沙盒中验证您的集成是否能端到端正常运行,然后录制完整流程的演示视频。Google 会在第 5 步的初始配置期间审核此视频。

本页中的步骤

重要测试参考

支持的凭证和属性

查看 mDL、身份证件和带照片的身份证件支持的确切 doctype_value 标识符和声明路径。

支持的发卡机构和 IACA 证书

下载生产环境发卡机构 IACA 根证书和 Utopia 沙盒证书。

交互式 Web 验证工具

将您的集成与 OpenWallet Foundation 托管的参考验证器进行并排比较。


第 A 步:验证沙盒测试设置

在运行端到端测试之前,请确认已满足以下四个前提条件:

  1. 设备处于沙盒模式,并具有测试 ID:您的 Android 测试设备已切换到 SANDBOX(第 1 步),并且在 Google 钱包中添加了 Utopia 身份证件(第 2 步)。
  2. 沙盒请求签名:
    • 依赖方:您的服务器使用预先信任的沙盒测试密钥对和元数据对请求进行签名。
    • 验证者注册机构:Google 已确认您的沙盒根 CA 位于沙盒受信任证书存储区中,并且您的服务器使用链接到沙盒根 CA 的叶证书对签名请求进行签名,并包含 CBOR 编码的 gw_rp_metadata_bytes(第 3.A 步:VR 规范)。
  3. 请求包含身份证件 doctype:由于沙盒测试 ID 是身份证件,因此您的 dcql_query 会请求 com.google.wallet.idcard.1 或 org.iso.23220.photoid.1(或使用第 3.A 步中的多凭证请求)。
  4. 服务器信任 Utopia 沙盒证书:您服务器的受信任证书存储区包含 Utopia 沙盒证书,因此 issuerAuth 签名验证对于 Utopia 测试 ID 成功。

第 B 步:测试请求、用户体验和错误处理

在您支持的每个平台(Android 应用、移动网站和桌面跨设备网站)上运行以下每项检查:

  • 可见入口点:用户点按/点击一个醒目的按钮(例如“使用数字身份证件进行验证”)即可发起请求。
  • Android 应用(如果适用): CredentialManager.getCredential() 会打开 Android 凭据选择器,并显示您的沙盒测试身份证件。
  • Web(如果适用): navigator.credentials.get() 会在移动浏览器上打开凭证选择器,并在使用签名请求时在桌面浏览器上显示跨设备二维码。
  • Google 钱包权限请求页面:点按凭证会打开 Google 钱包,并显示 gw_rp_metadata_bytes 中预期的显示名称、徽标和隐私权政策链接,以及您请求的属性。
  • 数据最小化:仅请求用例所需的属性(请参阅支持的凭证和属性),并为每个声明准确设置 intent_to_retain。
  • 用户取消和后备:在界面中妥善处理取消表格(Android 上的 GetCredentialCancellationException 或 Web 上被拒绝的 promise)或在没有匹配 ID 的情况下进行测试 (NoCredentialException) 的情况。

第 C 步:测试服务器端解密和加密验证

在 Google 钱包中批准权限请求页面后,请验证您的服务器是否执行了所有必需的加密检查:

  • JWE 解密:您的服务器使用与 client_metadata.jwks 加密公钥对应的私钥解密返回的 identityToken,并提取 vp_token。
  • SessionTranscript 重构:您的服务器使用 OpenID4VPDCAPIHandover 重构 SessionTranscript,其中包含确切的请求 nonce、加密 JWK 指纹和平台来源(android:apk-key-hash:... 或网站源网址)。
  • IACA 证书链验证 (issuerAuth):您的服务器会从 issuerAuth 中提取颁发者证书链,并在沙盒中根据 Utopia 沙盒证书对其进行验证,在生产环境中根据支持的颁发者和 IACA 证书中的官方生产根证书对其进行验证。切勿跳过此检查。
  • MSO、ValueDigests 和 deviceSignature 验证:您的服务器会验证移动安全对象 (MSO) 签名,确认 ValueDigests 与返回的数据元素匹配,并验证 deviceSignature(ISO/IEC 18013-5 第 9.1.2 节和第 9.1.3 节)。
  • 零知识证明(如果已实现):如果请求 mso_mdoc_zk,您的服务器会使用 longfellow-zk 验证返回的证明。

第 D 步:录制端到端演示视频

集成通过步骤 B 和 C 后,请录制一段屏幕截图视频,演示从您的应用或网站到 Google 钱包同意流程,再回到已验证状态的完整用户体验历程。下表显示了根据您的初始配置路径应包含的内容:

视频要求 依赖方(直接) 验证者注册机构(聚合信息提供方)
要显示的屏幕 完整用户体验历程:进入界面 → 凭证选择器 → Google 钱包同意和身份验证 → 应用或网站中的验证结果 初始(第 1 个)下游依赖方的完整用户体验历程
要记录的流程 您的 Android 应用和/或 Web 集成流程 验证方托管(自托管)和商家托管(RP 托管)流程(如适用)
品牌和展示素材资源 您的实际显示名称、徽标和隐私权政策 / 服务条款网址 实际商家展示素材资源(名称、徽标、服务条款网址)和您的聚合信息网站展示素材资源

下一步

选择您的新手入门路径,提交视频并发布到正式版: