PaymentRequestEvent: changePaymentMethod() 方法
注意: 此功能仅在 Service Workers 中可用。
changePaymentMethod()
方法是 PaymentRequestEvent
接口的一部分,用于让支付处理器获取更新后的总计,并使用诸如账单地址之类的支付方式详细信息。
调用此方法时,会触发 PaymentMethodChangeEvent
事件。
语法
js
changePaymentMethod(methodName)
changePaymentMethod(methodName, methodDetails)
参数
methodName
-
要使用的支付方式的名称。
methodDetails
可选-
一个对象,其中包含正在更新的特定于方法的详细信息。
返回值
一个 Promise
,该 Promise 会解析为一个 PaymentRequestDetailsUpdate
对象。此对象包含以下属性
error
-
解释为什么用户选择的支付方式不可用的字符串。
total
-
基于更改的支付方式的更新后的总计。例如,总计可能会发生变化,因为用户选择的支付方式的账单地址会改变适用的销售税。
modifiers
-
一个
Array
,包含PaymentDetailsModifier
对象,其属性在PaymentRequestEvent.modifiers
中描述。 paymentMethodErrors
-
一个对象,包含支付方式的验证错误(如果有)。
示例
以下显示了一个简单的代码片段,可以在 service worker 中使用它来将支付方式更改通知发送到主支付处理器窗口。有关完整的测试示例,请参见 用于测试支付方式更改事件的支付处理器。
js
function notifyPaymentMethodChanged(e) {
e.changePaymentMethod("someMethod")
.then((paymentMethodChangeResponse) => {
paymentHandlerWindow.postMessage(paymentMethodChangeResponse);
})
.catch((error) => {
sendMessage({ error: error.message });
});
}
规范
规范 |
---|
Payment Handler API # changepaymentmethod-method |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。