PaymentRequestEvent: respondWith() 方法
注意:此功能僅在 Service Workers 中可用。
respondWith() 方法屬於 PaymentRequestEvent 介面,它會阻止預設的事件處理,並允許您自己提供一個用於支付處理響應物件的 Promise。
語法
js
respondWith(promise)
引數
promise-
支付處理響應物件或解析為支付處理響應物件的
Promise。此物件應包含以下屬性:methodName-
使用者為完成交易選擇的支付方式的支付方式識別符號。
details-
一個 JSON 可序列化的物件,提供特定於支付方式的訊息,供商家用於處理交易和確定成功的資金轉移。有關更多詳細資訊,請參閱 7.1.2 details 屬性。
返回值
無(undefined)。
示例
下面的示例摘自 開啟支付處理程式視窗以顯示基於 Web 的支付應用程式前端。請閱讀該文章以瞭解程式碼的背景。
js
self.addEventListener("paymentrequest", async (e) => {
// Retain a promise for future resolution
resolver = new PromiseResolver();
// Pass a promise that resolves when payment is done.
e.respondWith(resolver.promise);
// Open the checkout page.
try {
// Open the window and preserve the client
client = await e.openWindow(checkoutURL);
if (!client) {
// Reject if the window fails to open
throw new Error("Failed to open window");
}
} catch (err) {
// Reject the promise on failure
resolver.reject(err);
}
});
規範
| 規範 |
|---|
| Payment Handler API # dom-paymentrequestevent-respondwith |
瀏覽器相容性
載入中…