PaymentResponse: complete() 方法
PaymentResponse 接口的 complete() 方法,属于 Payment Request API,用于通知 用户代理 用户交互已结束,并会关闭任何剩余的用户界面。
此方法必须在用户接受支付请求后,并且 PaymentRequest.show() 方法返回的 Promise 已解析后调用。
语法
js
complete()
complete(result)
参数
返回值
一个 Promise,它在支付界面完全关闭后解析,不带任何输入值。如果发生错误,则 Promise 会被拒绝,并返回以下异常之一。
异常
AbortErrorDOMException-
如果在显示用户界面的过程中,支付请求发生的文档变为非活动状态,则返回此异常。
InvalidStateErrorDOMException-
如果支付已完成,或者在支付重试请求待处理时调用了
complete(),则返回此异常。在请求重试支付后,您不能将该支付视为已完成。
示例
以下示例使用 Fetch API 将支付信息发送到安全服务器。它会根据响应中的状态,使用适当的答案调用 complete()。
js
// Initialization of PaymentRequest arguments are excerpted for the
// sake of brevity.
const payment = new PaymentRequest(supportedInstruments, details, options);
payment
.show()
.then((paymentResponse) => {
const fetchOptions = {
method: "POST",
credentials: include,
body: JSON.stringify(paymentResponse),
};
const serverPaymentRequest = new Request("secure/payment/endpoint");
fetch(serverPaymentRequest, fetchOptions)
.then((response) => {
if (response.status < 400) {
paymentResponse.complete("success");
} else {
paymentResponse.complete("fail");
}
})
.catch((reason) => {
paymentResponse.complete("fail");
});
})
.catch((err) => {
console.error("Uh oh, something bad happened", err.message);
});
规范
| 规范 |
|---|
| Payment Request API # dom-paymentresponse-complete |
浏览器兼容性
加载中…