Android 问题排查指南涵盖了与以下主题相关的问题。
应用目前正在测试环境中运行
当用户从付款详情对话框中选择支付卡时,可能会看到以下消息:
应用目前正在测试环境中运行。交易不会产生实际扣费
此错误表示应用使用 ENVIRONMENT_TEST 且未收到真实的付款凭据,但会收到个人信息,包括账单邮寄地址、账单邮寄地址电话号码、送货地址和电子邮件地址(如果请求)。
请求失败
最常见的错误消息是 OR_BIBED_06。此错误消息也会在界面中显示为一个对话框,其中包含以下文本:
请求失败
商家的 Google Pay 集成存在问题。请与商家联系以寻求帮助,或使用其他付款方式。
如需详细了解此错误,请按以下步骤操作:
- 确保您的计算机上安装了 Android 调试桥 (adb)。
- 确保您的设备已启用 USB 调试。如需了解详情,请参阅调试应用。
- 将 Android 设备连接到计算机或启动模拟器。
在计算机上的终端或命令提示符中运行以下命令:
adb logcat -s WalletMerchantError
响应会指明错误原因。例如,您可能会看到:
02-26 17:41:28.133 14593 14593 W WalletMerchantError: Error in loadPaymentData: This merchant profile does not have access to this feature.
您需要采取的措施取决于错误消息。
网关有效性
在集成过程中,您可能会遇到以下与网关有效性相关的错误。下表提供了一些实用的问题排查建议,以应对这些错误。
OR_BIBED_06未知网关 'yourgateway'- 您在
tokenizationSpecification中指定的gateway属性值目前不受 Google Pay API 支持。 如需详细了解网关标识符和关联字段(例如gatewayMerchantId),请与您的网关联系。 OR_BIBED_06网关“example”无法在生产模式下使用。- 网关属性值示例仅用于测试目的,不能与设置为
WalletConstants.ENVIRONMENT_PRODUCTION的WalletOptions环境形参值搭配使用。如需详细了解您需要与 Google Pay API 搭配使用的gateway参数,请与您的支付网关联系。
注册和访问权限
在集成过程中,您可能会遇到与注册和访问权限相关的以下错误。下表提供了一些实用的问题排查建议,以应对这些错误。
OR_BIBED_07此 API 需要 Google Play 服务库版本 8.4 及更高版本- 确保运行应用的设备上的 Google Play 服务是最新版本。
OR_BIBED_07未找到此商家资料的任何密钥- 您必须使用 Google Pay & Wallet Console 向 Google 注册加密公钥,才能完成
DIRECTtokenizationSpecificationtype集成。 OR_BIBED_07此商家资料无权使用此功能。- 您尚未完成为 Google Pay API 注册应用的过程。如需了解详情,请参阅申请正式版访问权。
OR_BIBED_10此商家所在的地区不接受 Google Pay。- 您所在的地区尚无法使用 Google Pay 服务。如需了解详情,请参阅 支持的国家/地区列表
OR_BIBED_11此商家尚未完成注册,无法使用 Google Pay API。 请前往控制台 (https://pay.google.com/business/console) 进行验证。- 您尚未完成为 Google Pay API 注册应用的过程。如需了解详情,请参阅申请正式版访问权。
OR_BIBED_12此 Google Pay API 集成已停用。如需了解详情,请与我们联系 (https://developers.google.com/pay/api/faq#how-to-get-support)。- 与我们联系,详细了解重新启用您账号的 Google Pay API 所需的步骤。
OR_BIBED_13签名密钥指纹{11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:11:22:33:44:55}与我们针对此应用的记录不符。- 只有在 APK 使用正确的签名密钥进行签名后,Google Pay API 才能在生产模式下使用。如需了解详情,请参阅为应用签名。
直接商家
在集成过程中,您可能会遇到与直连商家相关的以下错误。下表提供了一些实用的问题排查建议,以应对这些错误。
- 签名验证
- 如果
merchantId错误,您可能会遇到签名验证错误。 当您在TEST环境中使用 Tink paymentmethodtoken 库时,可能会发生这种情况。为避免此问题,请在以下位置将 YOUR_MERCHANT_ID 设置为 :
.recipientId("merchant:YOUR_MERCHANT_ID")
- 无法解密令牌
- 如果您使用 Tink paymentmethodtoken 库来解密令牌,请注意以下事项 :
- 确保 Google Pay API 响应环境与 Tink 环境相对应。例如,如果 Google Pay API 响应由
ENVIRONMENT_TEST返回,则 Tink 会指向测试环境以进行解密。 - 在将 Google Pay API 的响应传递给 Tink 之前,请勿修改该响应。确保您传递的是从 Google Pay API 响应中返回的整个令牌。如需了解详情,请参阅以下注释:
- 验证您是否拥有与您向 Google 注册的公钥相关联的相应私钥。
- 在 Windows 上生成公钥和私钥对
- 如果您使用的是 Windows,并且想要按照 使用 OpenSSL 生成私钥和公钥对中所述的步骤操作,请确保在您的计算机上安装 Cygwin。这是运行 Linux 命令所必需的。
Android 版 WebView
OR_BIBED_15由于此应用使用了 WebView,Google Pay 无法正常加载。 应用开发者必须按照相关说明操作,才能让 Google Pay 在 Android WebView 中正常运行。- 按照说明启用适用于 Android WebView 的 Google Pay API。
CardInfo
- 什么是 CardInfo 功能?
- Google Pay 会向消费者表明 Google Pay 付款按钮必需搭配银行卡才能发挥作用,并会显示银行卡品牌的网络以及银行卡的最后四位数。
- 为什么 CardInfo 功能无法在我的实现中呈现?
为了使 CardInfo 功能正常运行,我们需要满足以下条件:
- 您必须实现
createButtonAPI。 - 您必须将
ButtonOptions.buttonType配置为buy、long或pay。 - 用户必须有可用的付款方式,如您的
CardParameters对象所定义。
- 您必须实现