Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

PaymentRequest: paymentmethodchange Ereignis

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Das paymentmethodchange Ereignis wird über die Payment Request API an ein PaymentRequest-Objekt gesendet, wenn der Benutzer die Zahlungsmethode innerhalb eines bestimmten Zahlungshandlers ändert.

Wenn der Benutzer beispielsweise von einer Kreditkarte zu einer anderen in seinem Apple Pay Konto wechselt, wird ein paymentmethodchange Ereignis ausgelöst, um Sie über die Änderung zu informieren.

Dieses Ereignis ist nicht abbrechbar und wird nicht geblubbert.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("paymentmethodchange", (event) => { })

onpaymentmethodchange = (event) => { }

Ereignistyp

Ein PaymentMethodChangeEvent. Erbt von Event.

Event PaymentRequestUpdateEvent PaymentMethodChangeEvent

Beispiele

Werfen wir einen Blick auf ein Beispiel. Dieser Code erstellt ein neues PaymentRequest, fügt einen Handler für das paymentmethodchange Ereignis hinzu, indem er die addEventListener()-Methode des Requests aufruft und anschließend show() aufruft, um die Zahlungsoberfläche dem Benutzer zu präsentieren.

Der Code geht von der Existenz einer Methode detailsForTransaction() aus, die ein Objekt zurückgibt, das als details-Argument an den PaymentRequest-Konstruktor übergeben werden kann.

js
const paymentRequest = new PaymentRequest(
  paymentMethods,
  detailsForTransaction(),
);

paymentRequest.addEventListener("paymentmethodchange", handlePaymentChange);

paymentRequest
  .show()
  .then((response) => response.complete("success"))
  .catch((err) => console.error(`Error handling payment request: ${err}`));

Die Ereignis-Handler-Funktion selbst, handlePaymentChange(), sieht folgendermaßen aus:

js
handlePaymentChange = (event) => {
  const detailsUpdate = {};

  if (event.methodName === "https://apple.com/apple-pay") {
    const serviceFeeInfo = calculateServiceFee(event.methodDetails);
    Object.assign(detailsUpdate, serviceFeeInfo);
  }

  event.updateWith(detailsUpdate);
};

Dies beginnt, indem es die methodName-Eigenschaft des Ereignisses betrachtet; wenn diese anzeigt, dass der Benutzer versucht, Apple Pay zu verwenden, übergeben wir die methodDetails an eine Funktion namens calculateServiceFee(). Diese Funktion könnten wir erstellen, um die Informationen über die Transaktion, wie z. B. die zugrunde liegende Kreditkarte, die zur Bearbeitung der Apple Pay-Anfrage verwendet wird, zu nehmen und ein Objekt zu berechnen und zurückzugeben, das Änderungen angibt, die auf das PaymentRequest angewendet werden sollen, um gegebenenfalls erforderliche Servicegebühren für die Zahlungsmethode hinzuzufügen.

Bevor der Ereignis-Handler zurückkehrt, ruft er die updateWith()-Methode des Ereignisses auf, um die Änderungen in die Anfrage zu integrieren.

Spezifikationen

Spezifikation
Payment Request API
# dfn-paymentmethodchange
Payment Request API
# onpaymentmethodchange-attribute

Browser-Kompatibilität

Siehe auch