PaymentRequestEvent: respondWith() method
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.
The respondWith()
method of the PaymentRequestEvent
interface prevents the default event handling and allows you to provide a Promise
for a PaymentResponse
object yourself.
Syntax
respondWith(promise)
Parameters
Return value
A PaymentHandlerResponse
object. This contains the following properties:
methodName
-
The payment method identifier for the payment method that the user selected to fulfill the transaction.
details
-
A JSON-serializable object that provides a payment method-specific message used by the merchant to process the transaction and determine a successful fund transfer. See 7.1.2 details attribute for more details.
Examples
…
self.addEventListener('paymentrequest', async e => {
…
// Retain a promise for future resolution
// Polyfill for PromiseResolver at link below.
resolver = new PromiseResolver();
// Pass a promise that resolves when payment is done.
e.respondWith(resolver.promise);
// Open the checkout page.
try {
// Open the window and preserve the client
client = await e.openWindow(checkoutURL);
if (!client) {
// Reject if the window fails to open
throw 'Failed to open window';
}
} catch (err) {
// Reject the promise on failure
resolver.reject(err);
};
});
…
See Open the payment handler window to display the web-based payment app frontend for more details about how this would be used.
Specifications
Specification |
---|
Payment Handler API # dom-paymentrequestevent-respondwith |
Browser compatibility
BCD tables only load in the browser