Returns an object reflecting the payment instrument selected by the user or an empty string if the user has not registered or chosen a payment instrument.
Returns an array of objects containing payment method identifiers for the payment methods that the website accepts and any associated payment method specific data.
Opens the specified URL in a new window, if and only if the given URL is on the same origin as the calling page. It returns a Promise that resolves with a reference to a WindowClient.
When the PaymentRequest.show() method is invoked, a paymentrequest event is fired on the service worker of the payment app. This event is listened for inside the payment app's service worker to begin the next stage of the payment process.
js
let payment_request_event;let resolver;let client;// `self` is the global object in service worker
self.addEventListener("paymentrequest",async(e)=>{if(payment_request_event){// If there's an ongoing payment transaction, reject it.
resolver.reject();}// Preserve the event for future use
payment_request_event = e;// ...});
When a paymentrequest event is received, the payment app can open a payment handler window by calling PaymentRequestEvent.openWindow(). The payment handler window will present the customers with a payment app interface where they can authenticate, choose shipping address and options, and authorize the payment.
When the payment has been handled, PaymentRequestEvent.respondWith() is used to pass the payment result back to the merchant website.
Tip: you can click/tap on a cell for more information.
Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
See implementation notes.
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.