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 |
瀏覽器相容性
載入中…