Payment Handler API 的 CanMakePayment 事件行为更新

Payment Handler API 允许付款服务机构针对 以及 Payment Request APIPayment Request API 通过 new PaymentRequest() 构造函数,它会以静默方式触发 canmakepayment 事件,并且 商家来源和任意数据 为 Payment Handler API 注册的 Service Worker。 这种跨源通信不需要用户手势,也无需 显示任何界面

Chrome 即将从 canmakepayment 事件中移除标识字段 并从 Chrome 108 开始源试用。

此页面上的信息仅适用于满足以下条件的付款应用提供商: Payment Handler API。如果您不使用它,则可以跳过这些说明。

有何变化?

当商家调用 new PaymentRequest() 时,一个已注册的 Service Worker 收到 canmakepayment 事件 (CanMakePaymentEvent) 包含以下信息:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

这些将被删除,Service Worker 只会收到 canmakepayment 事件,没有任何额外信息。

功能检测

检测 Service Worker 中的 canmakepayment 事件是否发生了更改 代码,请检查各个属性,如下所示:

self.addEventListener(e => {
  if (e.paymentRequestOrigin) {...}
  if (e.topOrigin) {...}
  if (e.methodData && e.methodData.length > 0) {...}
  if (e.modifiers && e.modifiers.length > 0) {...}
  ...
});

在本地试用更改

如需在本地启用更改以用于开发目的,请执行以下操作:

  1. 使用 Chrome 108、109 或 110。
  2. 在网址栏中输入 chrome://flags/#clear-identity-in-can-make-payment
  3. 启用该标志。
  4. 重新启动 Chrome。

启用该标志后,canmakepayment 事件中的身份字段将 (以及 Android IS_READY_TO_PAY Intent)。

在生产环境中启用更改

您也可以在生产环境中启用更改,以便在更改生效之前进行测试 都位于 Chrome 中这种机制称为源试用。

通过源试用,您可以试用新功能并提供反馈 Web 标准社区的易用性、实用性和有效性。对于 如需了解详情,请参阅面向 Web 开发者的源试用指南。 如需报名参加此次或另一项源试用,请访问注册页面

如需注册源试用,请按以下步骤操作:

  1. 请求令牌
  2. 使用 Origin-Trial 将令牌添加到 Service Worker JavaScript 文件 HTTP 标头。设置 HTTP 标头需要访问配置您的服务器。 生成的响应标头应如下所示:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

如需在 Service Worker 文件中查看源试用令牌,请执行以下操作: 使用开发者工具 或如下所示的 curl 命令:

$ curl --head <Service Worker JS file URL> | grep -i origin-trial
origin-trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

在 Chrome 111 发布后,在本地重新启用身份字段

如果您使用的是 Chrome 111 或更高版本, canmakepayment 事件留空。要重新启用 您可以执行以下操作:

  1. 使用 Chrome 111 或更高版本。
  2. 在网址栏中输入 chrome://flags/#add-identity-in-can-make-payment
  3. 启用该标志。
  4. 重新启动 Chrome。

后续步骤

按照我们的计划,Chrome 111 会默认启用这项变更。您可以立即开始测试,以便做好准备 。