PaymentRequest: merchantvalidation Ereignis

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.

merchantvalidation-Ereignisse werden von der Payment Request API an ein PaymentRequest-Objekt gesendet, wenn ein Zahlungsabwickler verlangt, dass der Händler, der den Kauf anfordert, sich als berechtigt zur Nutzung des Zahlungsabwicklers validiert.

Erfahren Sie, wie der Händler-Validierungsprozess funktioniert.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergegeben.

Syntax

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

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

onmerchantvalidation = (event) => { }

Ereignistyp

Ereigniseigenschaften

MerchantValidationEvent.methodName

Ein String, der einen eindeutigen Zahlungsmethoden-Identifikator für den Zahlungsabwickler bereitstellt, der die Validierung erfordert. Dies kann entweder einer der standardmäßigen Zahlungsmethoden-Identifikationsstrings oder eine URL sein, die sowohl den Zahlungsabwickler identifiziert als auch Anfragen für diesen bearbeitet, wie z.B. https://apple.com/apple-pay.

MerchantValidationEvent.validationURL

Ein String, der eine URL spezifiziert, von der die Webseite oder App zahlungsabwicklerspezifische Validierungsinformationen abrufen kann. Sobald diese Daten abgerufen wurden, sollten die Daten (oder ein Versprechen, das zu den Validierungsdaten führt) in complete() übergeben 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. Es verwendet die fetch()-Methode, um eine Anfrage an den eigenen Server mit einem Argument der Validierungs-URL der Zahlungsmethode zu senden, die aus der validationURL-Eigenschaft des Ereignisses erhalten wurde. Der Händler-Server sollte die Validierungs-URL gemäß der Dokumentation der Zahlungsmethode aufrufen. Typischerweise sollte ein Client die Validierungs-URL nicht 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ändler-Server die Validierung behandelt, hängt von der Serverimplementierung und der Dokumentation der Zahlungsmethode ab. Der Inhalt, der vom Validierungsserver bereitgestellt wird, wird an den Händler-Server weitergeleitet und dann aus dem Erfüllungshandler des fetch()-Aufrufs an die complete()-Methode des Ereignisses zurückgegeben. Diese Antwort lässt den Zahlungsabwickler wissen, ob der Händler validiert ist.

Sie können auch die onmerchantvalidation-Ereignishandler-Eigenschaft 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 Händler-Validierung.

Browser-Kompatibilität

Siehe auch