PaymentResponse: complete() 方法
PaymentRequest
方法 complete()
在 支付请求 API 中通知 用户代理 用户交互已结束,并导致任何剩余的用户界面关闭。
此方法必须在用户接受支付请求之后调用,并且由 PaymentRequest.show()
方法返回的 Promise
被解析。
语法
js
complete()
complete(result)
参数
返回值
一个 Promise
,一旦支付界面完全关闭,它就会以不输入值的方式解析。如果发生错误,该 promise 反而会拒绝,返回以下列出的异常之一。
异常
AbortError
DOMException
-
如果发生支付请求的文档在用户界面显示时变为非活动状态,则返回。
InvalidStateError
DOMException
-
如果支付已完成,或者在请求重新尝试支付的请求挂起时调用
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);
});
规范
规范 |
---|
支付请求 API # dom-paymentresponse-complete |
浏览器兼容性
BCD 表仅在浏览器中加载