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: merchantvalidation event

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

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.

Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.

merchantvalidation-Ereignisse werden vom Payment Request API an ein PaymentRequest-Objekt übermittelt, wenn ein Zahlungshandler verlangt, dass der Händler, der den Kauf anfordert, sich als berechtigt zur Nutzung des Zahlungshandlers validiert.

Erfahren Sie, wie der Merchant-Validierungsprozess funktioniert.

Dieses Ereignis kann nicht abgebrochen werden und löst keine Bubbling aus.

Syntax

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

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

onmerchantvalidation = (event) => { }

Ereignistyp

Ein MerchantValidationEvent. Erbt von Event.

Ereigniseigenschaften

MerchantValidationEvent.methodName

Ein String, der eine eindeutige Zahlungsmetoden-Identifier für den Zahlungshandler bereitstellt, der die Validierung erfordert. Dies kann entweder einer der standardmäßigen Zahlungsmetoden-Identifier-Strings sein oder eine URL, die sowohl die Zahlungsanfrage identifiziert als auch bearbeitet, wie z. B. https://apple.com/apple-pay.

MerchantValidationEvent.validationURL

Ein String, der eine URL angibt, von der die Website oder App zahlungsspezifische Validierungsinformationen abrufen kann. Sobald diese Daten abgerufen sind, sollten die Daten (oder ein Promise, das die Validierungsdaten auflöst) in complete() überführt werden, um zu validieren, dass die Zahlungsanfrage von einem autorisierten Händler stammt.

Beispiele

In diesem Beispiel wird ein Ereignishandler für das merchantvalidation-Ereignis eingerichtet. Der Handler verwendet fetch(), um eine Anfrage an seinen eigenen Server mit dem Argument der Validierungs-URL der Zahlungsmethode zu senden, die aus der validationURL-Eigenschaft des Ereignisses bezogen wird. Der Händlerserver sollte die Validierungs-URL gemäß der Zahlungsmetodendokumentation aufrufen. Normalerweise sollte ein Client die Validierungs-URL nicht direkt aufrufen.

js
request.addEventListener("merchantvalidation", (event) => {
  event.complete(async () => {
    const merchantServerUrl = `${
      window.location.origin
    }/validate?url=${encodeURIComponent(event.validationURL)}`;
    // get validation data, and complete validation;
    return await fetch(merchantServerUrl).then((response) => response.text());
  }, false);
});

const response = await request.show();

Wie der Händlerserver die Validierung behandelt, hängt von der Serverimplementierung und der Dokumentation der Zahlungsmethode ab. Der Inhalt, der vom Validierungsserver geliefert wird, wird an den Händlerserver weitergeleitet und dann vom Erfüllungshandler des fetch()-Aufrufs an die complete()-Methode des Ereignisses zurückgegeben. Diese Antwort teilt dem Zahlungshandler mit, ob der Händler validiert wurde.

Sie können auch die Ereignishandler-Eigenschaft onmerchantvalidation verwenden, um den Handler für dieses Ereignis einzurichten:

js
request.onmerchantvalidation = (event) => {
  event.complete(async () => {
    const merchantServerUrl = `${
      window.location.origin
    }/validate?url=${encodeURIComponent(event.validationURL)}`;
    // get validation data, and complete validation;
    return await fetch(merchantServerUrl).then((response) => response.text());
  });
};

const response = await request.show();

Für weitere Informationen siehe Merchant Validation.

Browser-Kompatibilität

Siehe auch