W3cubDocs

/Web APIs

ServiceWorkerGlobalScope: canmakepayment event

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

The canmakepayment event of the ServiceWorkerGlobalScope interface is fired on a payment app's service worker to check whether it is ready to handle a payment. Specifically, it is fired when the merchant website calls new PaymentRequest().

Syntax

Use the event name in methods like addEventListener(), or set an event handler property.

js

addEventListener("canmakepayment", (event) => {});

oncanmakepayment = (event) => {};

Event type

Examples

The canmakepayment event is fired on a payment app's service worker to check whether it is ready to handle a payment. Specifically, it is fired when the merchant website calls new PaymentRequest(). The service worker can then use the CanMakePaymentEvent.respondWith() method to respond appropriately:

js

self.addEventListener("canmakepayment", (e) => {
  e.respondWith(
    new Promise((resolve, reject) => {
      someAppSpecificLogic()
        .then((result) => {
          resolve(result);
        })
        .catch((error) => {
          reject(error);
        });
    }),
  );
});

respondWith() returns a Promise that resolves with a boolean value to signal that the service worker is ready to handle a payment request (true), or not (false).

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
canmakepayment_event 70 79 No No 57 No No 70 No 49 No 10.0

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/canmakepayment_event