PaymentRequestEvent
注意:此功能僅在 Service Workers 中可用。
PaymentRequestEvent 介面是 Payment Handler API 的一部分,當發起 PaymentRequest 時,該介面是傳遞給支付處理程式的**PaymentRequestEvent** 物件。
建構函式
PaymentRequestEvent()實驗性-
建立一個新的
PaymentRequestEvent物件例項。
例項屬性
methodData只讀 實驗性-
返回一個包含支付方法識別符號的物件陣列,這些識別符號代表網站接受的支付方法以及任何相關的特定於支付方法的其他資料。
modifiers只讀 實驗性-
返回一個包含支付詳情更改的物件陣列。
paymentRequestId只讀 實驗性-
返回
PaymentRequest物件的 ID。 paymentRequestOrigin只讀 實驗性-
返回初始化
PaymentRequest物件的源(origin)。 topOrigin只讀 實驗性-
返回初始化
PaymentRequest物件的頂級源(top-level origin)。 total只讀 實驗性-
返回請求支付的總金額。
例項方法
changePaymentMethod()實驗性-
根據支付方法詳情獲取更新後的總金額。
openWindow()實驗性-
在新的視窗中開啟指定的 URL,前提是該 URL 與呼叫頁面具有相同的源。它返回一個
Promise,該 Promise 解析為一個指向WindowClient的引用。 respondWith()實驗性-
阻止預設事件處理,並允許您自己提供一個
PaymentResponse物件的Promise。
示例
當呼叫 PaymentRequest.show() 方法時,將在支付應用程式的服務工作執行緒上觸發一個 paymentrequest 事件。此事件在支付應用程式的服務工作執行緒中被監聽,以開始支付過程的下一階段。
let payment_request_event;
let resolver;
let client;
// `self` is the global object in service worker
self.addEventListener("paymentrequest", async (e) => {
if (payment_request_event) {
// If there's an ongoing payment transaction, reject it.
resolver.reject();
}
// Preserve the event for future use
payment_request_event = e;
// …
});
當收到 paymentrequest 事件時,支付應用程式可以透過呼叫 PaymentRequestEvent.openWindow() 來開啟一個支付處理視窗。支付處理視窗將向客戶展示一個支付應用程式介面,他們可以在其中進行身份驗證、選擇配送地址和選項,以及授權支付。
支付處理完成後,使用 PaymentRequestEvent.respondWith() 將支付結果傳回商家網站。
有關此階段的更多詳細資訊,請參閱 Receive a payment request event from the merchant。
規範
| 規範 |
|---|
| Payment Handler API # the-paymentrequestevent |
瀏覽器相容性
載入中…