网页问题排查指南涵盖了与以下主题相关的问题。
注册和访问权限
在集成过程中,您可能会遇到以下错误。此列表提供了一些有用的问题排查建议,以应对这些错误。
- 此商家未启用 Google Pay
- Google Pay API 要求为配置了
PaymentsClient以用于PRODUCTION环境的网站提供 Google merchantId。GooglemerchantId通过 Google Pay 和钱包控制台与一个或多个完全限定网域相关联。如需了解详情,请查看返回的错误详细信息。 - 此商家尚未完成注册,无法使用 Google Pay API。请前往控制台 (https://pay.google.com/business/console) 进行验证。
- 您尚未完成为 Google Pay API 注册网站的流程。查看申请正式版访问权限,了解如何使用 Google Pay 和钱包控制台进行注册,并申请审核您的网站对 Google Pay API 的使用情况。
- 此商家资料无权使用此功能
- Google 尚未将您的网站配置为使用 Google Pay API。请参阅申请正式版访问权限,通过 Google Pay 和钱包控制台申请审核您的网站对 Google Pay API 的使用情况。
- 此 Google Pay API 集成已停用。如需了解详情,请与我们联系 (https://developers.google.com/pay/api/faq#how-to-get-support)。
- 与我们联系,详细了解重新为您的 Google 账号启用 Google Pay API 所需的步骤。
- 您的网域 “example.com”未注册以使用此 API
- 托管结账流程的网域未与您使用的
merchantId相关联。确保merchantId参数正确无误,并且您的网域已通过 Google Pay & Wallet Console 注册。 - 应在安全环境中调用 Google Pay API!
- Google Pay API 只能在安全环境中的网站上使用。如需了解详情,请参阅安全上下文。
- 未找到相应商家资料的任何密钥
- 您必须通过 Google Pay & Wallet Console 向 Google 注册加密公钥,才能完成
DIRECTtokenizationSpecificationtype集成。
merchantId
在集成过程中,您可能会在某个时间点遇到与 merchantId 相关的以下错误。此列表提供了一些有用的问题排查建议,以应对这些错误。
- 必须设置 merchantId!
PaymentDataRequest中的merchantId参数必须设置为通过 Google Pay & Wallet Console 提供的值。仅当您使用为PRODUCTION环境配置的PaymentsClient时,才需要merchantId参数。请查看我们的集成核对清单,申请审核您的网站对 Google Pay API 的使用情况,并获取您的merchantId。- merchantId 不是字符串
PaymentDataRequest中的merchantId参数必须始终是字符串。在调用 API 之前,请确保您使用的merchantId参数的类型为字符串。- merchantId 未注册。
PaymentDataRequest中的merchantId参数必须通过 Google Pay 和钱包控制台进行配置。 如需了解详情,请参阅申请正式版访问权。
网关有效性
在集成过程中,您可能会遇到以下与网关有效性相关的错误。此列表提供了一些有用的问题排查建议,以应对这些错误。
- 未知网关 yourgateway
- 您在
paymentMethodTokenizationParameters.parameters中指定的网关参数目前不受 Google 支持。如需详细了解网关标识符和关联字段(例如gatewayMerchantId),请与您的网关联系。 - 网关“example”无法在生产模式下使用
- 示例网关参数值仅用于测试,不能与为
PRODUCTION环境配置的PaymentsClient一起使用。如需详细了解需要设置哪些PaymentMethodTokenizationSpecification参数值才能使用 Google Pay API,请与您的支付网关联系。
对象有效性
在集成过程中,您可能会遇到以下与对象有效性相关的错误。此列表提供了一些有用的问题排查建议,以应对这些错误。
- Google Pay 的 PaymentDataRequest 不是有效的 JSON
- 提供给
loadPaymentData的参数必须始终是有效的PaymentDataRequest对象。 - 必须设置 transactionInfo!
PaymentDataRequest中的transactionInfo参数必须始终是有效的TransactionInfo对象。
直接商家
在集成过程中,您可能会在某个时间点遇到与直销商家相关的以下错误。此列表提供了一些有用的问题排查建议,以应对这些错误。
- 签名验证
- 如果
merchantId错误,您可能会遇到签名验证错误。 当您在TEST环境中使用 Tink paymentmethodtoken 库时,可能会发生这种情况。为避免此问题,请在- 中将 YOUR_MERCHANT_ID 设置为
:12345678901234567890.recipientId("merchant:YOUR_MERCHANT_ID")
- 中将 YOUR_MERCHANT_ID 设置为
- 无法解密令牌
- 如果您使用 Tink paymentmethodtoken 库来解密令牌,请注意以下事项 :
- 确保 Google Pay API 响应环境与 Tink paymentmethodtoken 环境相对应。如需了解详情,请参阅以下示例:
- 如果 Google Pay API 响应是由环境
TEST返回的,则 Tink 会指向测试环境以进行解密。 - 在将 Google Pay API 的响应传递给 Tink 之前,请勿修改该响应。确保您传递的是从 Google Pay API 响应中返回的整个令牌。如需了解详情,请参阅以下注释:
- 验证您是否拥有与您向 Google 注册的公钥相关联的相应私钥。
- 在 Windows 上生成公钥和私钥对
- 如果您使用的是 Windows,并且想要按照 使用 OpenSSL 生成私钥和公钥对中所述的步骤操作,请确保在您的计算机上安装 Cygwin。这是运行 Linux 命令所必需的。
错误对象
错误对象是由客户端 JavaScript 方法中被拒绝的承诺返回的对象。
- PaymentsError
- 此对象包含有关由客户端 JavaScript 方法返回的错误的详细信息。面向用户的对话框中可能不会显示相关错误。
| 属性 | 类型 | 说明 |
|---|---|---|
statusCode |
字符串 | 用于描述错误类型的简短代码。 |
statusMessage |
字符串 | 面向开发者的消息,用于描述遇到的错误以及用以纠正该错误的可能步骤。 |
- 常见错误
- 此对象显示了您在所有 JavaScript 方法中可能会遇到的错误。请务必查看开发者控制台,以了解其他错误消息。
- 什么是 CardInfo 功能?
- Google Pay 会向消费者表明 Google Pay 付款按钮必需搭配银行卡才能发挥作用,并会显示银行卡品牌的网络以及银行卡的最后四位数。
- 为什么 CardInfo 功能无法在我的实现中呈现?
为了使 CardInfo 功能正常运行,我们需要满足以下条件:
- 您必须实现
createButtonAPI。 - 您必须将
ButtonOptions.buttonType配置为buy、long或pay。 - 用户必须有可用的付款方式,如您的
CardParameters对象所定义。
- 您必须实现
- 为什么 Google Pay 付款按钮会无限期加载?
- 请勿移除
onLoad事件监听器。如果您移除onLoad事件监听器,可能会导致 Google Pay 付款按钮无限期加载。 - 为什么在我点击 Google Pay 付款按钮后没有出现付款提示?
- 为
ButtonOptions.onClick事件分配事件监听器回调。 - 使用 WebView
- 请按照 Android 和 iOS 适用的指南操作,确保您的集成与 WebView 兼容。
Cross-Origin-Opener-PolicyHTTP 响应标头- 如果
Cross-Origin-Opener-PolicyHTTP 响应标头设置为same-origin,则可能会阻止浏览器打开必要的弹出式窗口,导致用户无法完成交易。 尝试将标头的值更改为same-origin-allow-popups,以减少这些问题。 - 用户点击事件与对
loadPaymentData()的调用之间的延迟 -
如果在点击 Google Pay 按钮(或类似的结账按钮)后,在
loadPaymentData()调用(例如:setTimeout()、其他网络调用或类似的长时间运行的逻辑)之前出现延迟,可能会导致浏览器弹出式窗口拦截机制触发。 我们建议,在用户点击与loadPaymentData()调用之间不设置任何延迟。
| 状态代码 | 说明 |
|---|---|
BUYER_ACCOUNT_ERROR |
当前的 Google 用户无法提供付款信息。 |
DEVELOPER_ERROR |
传递的参数格式不正确。对于所有已配置的环境,浏览器控制台中可能会显示错误消息。 |
MERCHANT_ACCOUNT_ERROR |
访问 Google Pay API 的网站没有相应权限。这可能是由于请求中的配置不正确或商家 ID 设置不正确所致。如需了解详情,请查看 |
INTERNAL_ERROR |
常规服务器错误。 |
CardInfo
OR_BIBED_15 处错误
在集成过程中,您可能会遇到 OR_BIBED_15 错误。此列表提供了一些有用的问题排查建议,以应对此错误。