PaymentRequestEvent: phương thức changePaymentMethod()

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is only available in Service Workers.

Phương thức changePaymentMethod() của giao diện PaymentRequestEvent được trình xử lý thanh toán sử dụng để lấy tổng số tiền đã cập nhật, dựa trên các chi tiết phương thức thanh toán như địa chỉ thanh toán.

Khi phương thức này được gọi, một PaymentMethodChangeEvent được kích hoạt.

Cú pháp

js
changePaymentMethod(methodName)
changePaymentMethod(methodName, methodDetails)

Tham số

methodName

Tên của phương thức thanh toán sẽ được sử dụng.

methodDetails Optional

Một đối tượng chứa các chi tiết đặc thù của phương thức đang được cập nhật.

Giá trị trả về

Một Promise được giải quyết với một đối tượng PaymentRequestDetailsUpdate. Đối tượng này chứa các thuộc tính sau:

error

Một chuỗi giải thích lý do tại sao phương thức thanh toán do người dùng chọn không thể được sử dụng.

total

Tổng số tiền đã cập nhật dựa trên phương thức thanh toán đã thay đổi. Tổng số tiền có thể thay đổi, ví dụ vì địa chỉ thanh toán của phương thức thanh toán được người dùng chọn thay đổi thuế bán hàng áp dụng.

modifiers

Một Array các đối tượng PaymentDetailsModifier, có thuộc tính được mô tả trong PaymentRequestEvent.modifiers.

paymentMethodErrors

Một đối tượng chứa các lỗi xác thực cho phương thức thanh toán, nếu có.

Ví dụ

Đoạn code sau đây cho thấy một đoạn code đơn giản có thể được sử dụng trong một service worker để gửi thông báo thay đổi phương thức thanh toán đến cửa sổ trình xử lý thanh toán chính. Để xem ví dụ kiểm tra đầy đủ, xem Payment handler for testing payment method change event.

js
function notifyPaymentMethodChanged(e) {
  e.changePaymentMethod("someMethod")
    .then((paymentMethodChangeResponse) => {
      paymentHandlerWindow.postMessage(paymentMethodChangeResponse);
    })
    .catch((error) => {
      sendMessage({ error: error.message });
    });
}

Thông số kỹ thuật

Thông số kỹ thuật
Web-based Payment Handler API
# changepaymentmethod-method

Tương thích trình duyệt

Xem thêm