Payment Handler API 将需要 CSP connect-src

Rouslan Solomakhin
Rouslan Solomakhin

借助 Payment Handler API,付款服务机构可为商家提供自定义付款体验以及 Payment Request API

本页中的信息仅适用于同时使用 CSP (Content-Security-Policy) 和 Payment Request API 的网站。如果两者都不使用或只使用其中一种,则可以跳过这些说明。

如需检查您的付款服务机构是否使用了 Payment Handler API,请与他们联系并按照其中的说明操作。

如果您使用 Payment Handler API 和 CSP (Content-Security-Policy) 以获得更好的保护,则需要确保从浏览器发送的 HTTP 请求的网域已添加到 CSP 标头的 connect-src 指令中。

例如,如果您的 JavaScript 代码调用 new PaymentRequest([{supportedOrigins: ‘https://example.com/pay’}], details),则 CSP connect-src 必须包含 https://example.comhttps://example.com/pay

Content-Security-Policy: connect-src https://example.com/pay

如果 https://example.com/pay 是跨域重定向,则目标源站也应包含在 CSP 中。例如,如果 https://example.com/pay 重定向到 https://pay.example.com,那么这两个源都必须包含在 CSP 中:

Content-Security-Policy: connect-src https://example.com/pay https://pay.example.com

在本地试用

如需在功能发布之前在本地启用该功能,请执行以下操作:

  1. 在 Chrome 上前往 chrome://flags/#web-payment-api-csp
  2. 将“Web Payment API 的 CSP 政策”从“默认”更改为“已启用”。
  3. 重启 Chrome。

检查请求网址

若要检查从 Payment Handler API 发送的请求的网址,请执行以下操作:

  1. 启用chrome://flags/#web-payment-api-csp
  2. 前往结账页,然后打开 Chrome 的开发者工具。
  3. 查找如下所示的错误消息: text RangeError: Failed to construct 'PaymentRequest': https://example.com/pay payment method identifier violates Content Security Policy.
  4. 将指定的方法标识符添加到您的 CSP。

照片由 Eduardo Soares 拍摄,来源:Unsplash