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-iframe
中新增了 placeholder
元素,以確保它可以在頂端視窗中載入。預留位置會顯示停用的按鈕,直到 iframe 載入完成為止。我們也使用 CSS 停用了預設的載入動畫。但是,由於 AMP 不允許 javascript,iframe 來源也必須處理 PaymentRequest 無法使用的情況。雖然目前超出本範例的範圍,但可能的選項包括:
- 將「立即購買」按鈕換成「加入購物車」按鈕。
- 重新導向至標準結帳表單。
- 完全隱藏「立即購買」按鈕,並使用個別的 AMP 式「加入購物車」按鈕 (請參閱產品頁面示範)
需要更多說明嗎?
如果本頁面的說明未涵蓋您的所有問題,請隨時與其他 AMP 使用者聯繫,討論您的確切使用案例。
前往 Stack Overflow 未說明的特色功能?AMP 專案大力鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的長期參與者,但我們也歡迎您針對您特別熱衷的問題做出一次性的貢獻。
在 GitHub 上編輯範例