借助 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.com
或 https://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
在本地试用
如需在功能发布之前在本地启用该功能,请执行以下操作:
- 在 Chrome 上前往
chrome://flags/#web-payment-api-csp
。 - 将“Web Payment API 的 CSP 政策”从“默认”更改为“已启用”。
- 重启 Chrome。
检查请求网址
若要检查从 Payment Handler API 发送的请求的网址,请执行以下操作:
- 启用
chrome://flags/#web-payment-api-csp
。 - 前往结账页,然后打开 Chrome 的开发者工具。
- 查找如下所示的错误消息:
text RangeError: Failed to construct 'PaymentRequest': https://example.com/pay payment method identifier violates Content Security Policy.
- 将指定的方法标识符添加到您的 CSP。
照片由 Eduardo Soares 拍摄,来源:Unsplash