集成核对清单

请使用以下核对清单,确保您已在您的 Web 集成中完成所有必要的步骤。

测试环境简介

Google Pay API 测试配置不会返回实时的可扣款付款方式信息,您可以借助该配置测试购买工作流程的元素: 可测试元素如下所示:

  • 确认页面
  • 收据
  • 帐单邮寄地址(可选)
  • 帐单联系电话号码(可选)
  • 送货地址(可选)
  • 电子邮件地址(可选)

要在测试环境中使用示例付款数据响应,请使用包含环境属性设置为 TEST 的 JavaScript 对象初始化新的 PaymentsClient

以下是一个代码示例:
var paymentsClient =
    new google.payments.api.PaymentsClient({environment: 'TEST'});

使用浏览器的开发者控制台进行测试

在最新版本的多个受支持的浏览器和操作系统 (包括桌面设备、Android 设备和 iOS 设备)上测试您的网站。为此,请打开浏览器的开发者工具,以查看 控制台消息与您的网站相关的。这些消息 包含来自 Google Pay API JavaScript 客户端库的错误或警告。Google Pay API 支持 Google Chrome、Mozilla Firefox、Apple Safari、Microsoft Edge、Opera 和 UCWeb UC 浏览器,可在桌面平台和移动平台上使用。

当您调用 loadPaymentData()后,Google 付款选择对话框窗口中可能会显示其他错误。如果您在查看错误消息后点击继续确定 ,系统可能会在您的网站处理的遭拒 Promise 中返回其他详细信息。

在兼容的设备上进行测试

虽然 Google Pay API 可在许多市场上使用,但令牌化的卡只能在一部分国家/地区使用。在多个移动设备和操作系统 (包括 Android 和 iOS)上测试您的集成。如果将标记化的卡设置为允许的支付方式,请在安装了 Chrome(Android 版)59 版或更高版本以及 Google Play 服务 16.0.0 版或更高版本的 Android 设备上测试这些卡,同时在 iOS 设备上使用 Safari 或 Chrome 等受支持的浏览器进行测试。使用存储在 Google Pay 应用中的卡进行测试(如果您所在的国家/地区以及发卡银行支持您的付款方式的话)。

要查看 Chrome(Android 版)输出的控制台错误和警告,请使用 从桌面版 Chrome 中的远程调试进行测试。如需详细了解可能出现的错误,请查看 Android 设备上的日志。您可以通过 Android Studio 中的 Logcat 工具窗口、使用 adb logcat 命令行工具或在 Android 错误报告内查看错误日志。要查看与 Google Pay API 相关的错误消息,请搜索 WalletMerchantError

以下是一个代码示例:

adb logcat -s WalletMerchantError

测试您的集成

在使用为 TEST 环境配置的 PaymentsClient 向 Google 提交集成以进行验证之前,请确保您已满足以下各项功能性和品牌推广性检查的放行准则。

1. 基础知识

确保您对卡或 PAN 交易的现有风险检查和控制措施也 适用于 Google Pay 交易。Google Pay 验证和欺诈检查的目的并不在于 取代您的风险管理流程。
如果您会根据风险标准选择性地为普通卡交易触发 3D Secure(分步身份验证) 请务必使用相同的风险标准来为 Google Pay PAN PAN_ONLY 交易触发 3D Secure。
确保您已阅读并准备好接受我们的 服务条款。若想通过 Google Pay API 进行注册,您的电子邮件地址必须与 Google 帐号相关联,最好是与您的企业网域相关联的企业电子邮件地址(例如,admin@myownpersonaldomain.com)。 在 Google 帐号创建流程中选择改用当前的电子邮件地址,将您的电子邮件地址与 Google 帐号相关联。
仅使用从 Google Pay API 收到的数据来处理交易。所有其他 使用场景都需要单独获得用户的明确同意。
确认您所在国家/地区的付款处理方可以接受的支付卡网络和卡身份验证方式。
如果您完成了 DIRECT tokenizationSpecification type 集成,则必须每年轮替一次加密公钥,并通过 Google Pay & Wallet Console 向 Google 提供 PCI 证明。PCI 证明可由 经 PCI 安全标准委员会认证的第三方或有资质的安全评估方提交,并经 认可的供应商 有资质的评估方批准。

2. 品牌测试

使用我们批准的资源并遵守我们 品牌推广指南的所有要素。
确保只有在您的网站通过 isReadyToPay() 函数确认用户能够付款后,才会显示 Google Pay 付款按钮。
确认显示的 Google Pay 付款按钮尺寸与页面上的类似按钮 及元素相匹配。
根据显示区域的背景颜色选择适当的按钮。

3. 功能测试

在多个热门网络浏览器(例如 Google Chrome、Apple Safari、Mozilla Firefox 和 Microsoft Edge)和移动操作系统(Android 和 iOS) 上测试您的集成,以验证按钮呈现、付款表格弹出窗口和交易流程是否正常运行。
请验证在您点击 Google Pay 付款按钮时 loadPaymentData() 是否会被同步调用,并维持浏览器中的用户活跃行为,以允许 Google Pay API 显示付款表格。确认弹出式窗口拦截器未拦截 Google Pay 付款表格。

在请求以 PAN_ONLY 为卡身份验证方法的 CARD 付款方式类型时,请完成以下步骤以执行针对备案卡的测试:

  1. 如果适用,从 pay.google.com 中移除所有已备案的卡。
  2. 返回您的集成。
  3. 点击 Google Pay
  4. 验证您是否看到添加卡的选项。
  5. 根据 parameters.allowedCardNetworks中的定义,从支持的网络添加卡。
  6. 验证您能否在选择器中看到所添加的带网络徽标的卡。

以下测试仅适用于 Android 版 Chrome。

在请求以 CRYPTOGRAM_3DS 为卡身份验证方法的 CARD 付款方式类型时,完成以下步骤以执行 Android 设备令牌测试:

  1. 检查您的发卡机构是否受支持,然后在 Google Pay Android 应用中添加支持的银行卡
  2. 返回您的集成。
  3. 点击 Google Pay 付款按钮。
  4. 验证您是否在选择器中看到所添加的带卡片图案的卡。

如果您确认您的处理方支持 3D 安全卡身份验证,即使无法以 Android 用户或持卡人的身份使用 Android 设备令牌,您也可以继续操作。

如果您要求提供送货地址,请在不同的填写状态下测试送货地址的处理,例如

  • 要解析为结构化字段的全名的各种变体,例如 "John," "John Doe," and "Jane Doe Smith."
  • 准确解析 Google Pay API 返回的所有地址行,这可能超过标准结账流程中通常收集的地址行总数。
  • 确认返回的国家/地区地址部分与您网站支持的送货目的地一致。如果您指定了送货限制,请对其进行测试: 在付款表格中输入不允许输入的不受支持的送货地址,并检查这些限制是否有效。

如果您已实现对“授权付款”的支持,请验证以下内容:

  • 如果付款身份验证失败,则会返回 ERROR transactionState PaymentDataError 以及 PAYMENT_AUTHORIZATION intent。

如果您已实现对“动态价格更新”的支持,请完成以下步骤:

  1. 在付款表格中添加卡和地址详细信息。
  2. 更新运费选项、订单列表和总价。
  3. 重要提示:确保总价与交易金额一致。否则,可能会影响电子商务指标 (ECI) 值和责任方。
  4. 添加并选择送货地址。
  5. 更新运费选项、订单列表和总价。
  6. 选择送货选项。
  7. 更新订单列表和总价。
  8. 验证结果:
    • 如果送货地址没有可用的运费选项,请验证您是否收到 PaymentDataErrorSHIPPING_ADDRESS intent。
    • 如果选定的运费选项无效,请验证您是否收到 PaymentDataErrorSHIPPING_OPTION intent。
    • 如果付款身份验证失败,请验证您是否收到 ERROR transactionState PaymentDataError 以及 PAYMENT_AUTHORIZATION intent。
如果您需要电话号码,请通过帐单邮寄地址提出申请。然后使用不同的格式(例如 +8005550100、18005550100、(800) 555-0100)测试能否解析电话号码,以及能否按照您网站的数据标准存储电话号码。
确保同等显示 Google Pay 及其他第三方付款方式。
对于以前在结账时选择 Google Pay 并在您的应用中指定 Google Pay 作为付款偏好的用户,您必须将 Google Pay 作为其后续购买的默认付款方式。
在处理交易之前,必须向用户显示最终价格。如果扣费金额因从 Google Pay API 收到的数据而发生变化,您应显示含有最终价格的确认页面。