Firefox Tomorrow

web api interface

PaymentRequestEvent

View on MDN ↗

Limited availabilityAvailable in workers

The PaymentRequestEvent interface of the Web-based Payment Handler API is the object passed to a payment handler when a PaymentRequest is made.

Constructor

Instance properties

  • methodData Read only Experimental
    • : Returns an array of objects containing payment method identifiers for the payment methods that the website accepts and any associated payment method specific data.
  • modifiers Read only Experimental
    • : Returns an array of objects containing changes to payment details.
  • paymentRequestId Read only Experimental
  • paymentRequestOrigin Read only Experimental
    • : Returns the origin where the PaymentRequest object was initialized.
  • topOrigin Read only Experimental
    • : Returns the top-level origin where the PaymentRequest object was initialized.
  • total Read only Experimental
    • : Returns the total amount being requested for payment.

Instance methods

  • changePaymentMethod() Experimental
    • : Gets an updated total, given payment method details.
  • openWindow() Experimental
    • : 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.
  • respondWith() Experimental
    • : Prevents the default event handling and allows you to provide a Promise for a PaymentResponse object yourself.

Examples

When the 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.

let paymentRequestEvent;
let resolver;
let client;

// `self` is the global object in service worker
self.addEventListener("paymentrequest", async (e) => {
  if (paymentRequestEvent) {
    // If there's an ongoing payment transaction, reject it.
    resolver.reject();
  }
  // Preserve the event for future use
  paymentRequestEvent = e;

  // …
});

When a paymentrequest event is received, the payment app can open a payment handler window by calling 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, respondWith() is used to pass the payment result back to the merchant website.

See Receive a payment request event from the merchant for more details of this stage.

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also