| title | ServiceWorkerGlobalScope: canmakepayment event | |
|---|---|---|
| short-title | canmakepayment | |
| slug | Web/API/ServiceWorkerGlobalScope/canmakepayment_event | |
| page-type | web-api-event | |
| status |
|
|
| browser-compat | api.ServiceWorkerGlobalScope.canmakepayment_event |
{{APIRef("Web-Based Payment Handler API")}}{{SeeCompatTable}}{{SecureContext_Header}}{{AvailableInWorkers("service")}}
The canmakepayment event of the {{domxref("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 the {{domxref("PaymentRequest.PaymentRequest", "PaymentRequest()")}} constructor.
Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}}, or set an event handler property.
addEventListener("canmakepayment", (event) => { })
oncanmakepayment = (event) => { }
A {{domxref("CanMakePaymentEvent")}}. Inherits from {{domxref("ExtendableEvent")}}.
{{InheritanceDiagram("CanMakePaymentEvent")}}
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 the {{domxref("PaymentRequest.PaymentRequest", "PaymentRequest()")}} constructor. The service worker can then use the {{domxref("CanMakePaymentEvent.respondWith()")}} method to respond appropriately:
self.addEventListener("canmakepayment", (e) => {
e.respondWith(
new Promise((resolve, reject) => {
someAppSpecificLogic()
.then((result) => {
resolve(result);
})
.catch((error) => {
reject(error);
});
}),
);
});respondWith() returns a {{jsxref("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}}
{{Compat}}
- {{domxref("Web-based Payment Handler API", "", "", "nocode")}}
- Web-based payment apps overview
- Setting up a payment method
- Life of a payment transaction
- Using the Payment Request API
- Payment processing concepts