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 |
浏览器兼容性
加载中…