AMP 中的支付
简介
通过 amp-iframe 和 allowpaymentrequest
属性,AMP 页面可以直接从浏览器支持请求支付信息。PaymentRequest API 是一个 开放的 W3C 规范,受到大多数主流浏览器的支持。此示例不会详细介绍该 API,但您可以在这篇深入分析文章中获取更多信息。
此示例显示如何嵌入一个仅包含“立即购买”按钮的 iframe。所有实际的支付逻辑都包含在 iframe src 本身中。
设置
此示例唯一需要的额外组件是 amp-iframe。
<script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"></script>
配置 Iframe
在基本情况下,AMP 页面会将所有 PaymentRequest 逻辑交给 iframe 来完成单个商品的购买。
关键的是,iframe 会执行两件事
- 设置
allowpaymentrequest
属性,该属性授予 iframe 源调用 PaymentRequest.show() 的权限。 - 通过查询字符串传递相关的产品标识符,允许 iframe 检索此产品的适当产品信息。
<amp-iframe title="Buy Now button to retrieve product information" width="130" height="42" sandbox="allow-scripts allow-same-origin allow-top-navigation" allowpaymentrequest frameborder="0" noloading src="/static/samples/files/iframe/payments.html?productId=1">
<button placeholder disabled>Buy Now</button>
</amp-iframe>
但是,由于 AMP 不允许 JavaScript,iframe 源还必须处理 PaymentRequest 不可用的情况。虽然目前不在本示例的范围内,但潜在的选择是
- 将“立即购买”按钮替换为“添加到购物车”按钮。
- 重定向到标准结帐表单。
- 完全隐藏“立即购买”按钮,并使用单独的基于 AMP 的“添加到购物车”按钮(请参阅产品页面演示)
需要进一步解释吗?
如果此页面上的说明未能涵盖您所有的问题,请随时联系其他 AMP 用户来讨论您的具体用例。
转到 Stack Overflow 一个无法解释的功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您成为我们开源社区的持续参与者,但也欢迎您对您特别感兴趣的问题进行一次性贡献。
在 GitHub 上编辑示例-
由 @sebastianbenz 编写