PaymentRequestEvent: respondWith() 方法
注意:此功能仅在Service Workers中可用。
PaymentRequestEvent
接口的respondWith()
方法阻止默认事件处理,并允许您自己提供支付处理程序响应对象的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 "Failed to open window";
}
} catch (err) {
// Reject the promise on failure
resolver.reject(err);
}
});
规范
规范 |
---|
Payment Handler API # dom-paymentrequestevent-respondwith |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。