PaymentRequestEvent: changePaymentMethod() 方法
注意:此功能仅在 Service Workers 中可用。
PaymentRequestEvent 接口的 changePaymentMethod() 方法由支付处理程序使用,以便在给定账单地址等付款方式详细信息的情况下,获取更新后的总金额。
调用此方法时,会触发一个 PaymentMethodChangeEvent。
语法
js
changePaymentMethod(methodName)
changePaymentMethod(methodName, methodDetails)
参数
methodName-
将要使用的付款方法的名称。
methodDetails可选-
一个包含正在更新的特定于方法的详细信息的对象。
返回值
一个 Promise,它会解析为一个 PaymentRequestDetailsUpdate 对象。此对象包含以下属性:
error-
一个字符串,解释为什么无法使用用户选择的付款方法。
total-
根据更改的付款方法更新的总金额。例如,由于用户选择的付款方式的账单地址会更改适用的销售税,因此总金额可能会发生变化。
modifiers-
一个
PaymentDetailsModifier对象的Array,其属性在PaymentRequestEvent.modifiers中进行了描述。 paymentMethodErrors-
一个包含付款方法验证错误的对象(如果存在)。
示例
以下是一个简单的代码片段,可在服务工作线程中使用,以将付款方式更改通知发送到主支付处理程序窗口。有关完整的测试示例,请参阅 用于测试付款方式更改事件的支付处理程序。
js
function notifyPaymentMethodChanged(e) {
e.changePaymentMethod("someMethod")
.then((paymentMethodChangeResponse) => {
paymentHandlerWindow.postMessage(paymentMethodChangeResponse);
})
.catch((error) => {
sendMessage({ error: error.message });
});
}
规范
| 规范 |
|---|
| Payment Handler API # changepaymentmethod-method |
浏览器兼容性
加载中…