PaymentRequest: merchantvalidation Ereignis

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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 vom Payment Request API an ein PaymentRequest Objekt gesendet, wenn ein Zahlungshandler erfordert, dass der Händler, der den Kauf anfragt, sich als berechtigt identifiziert, den Zahlungshandler zu nutzen.

Erfahren Sie, wie der Händlervalidierungsprozess funktioniert.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergeleitet.

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 eine eindeutige Zahlungsidentifikationsmethode für den Zahlungshandler bereitstellt, der eine Validierung erfordert. Dies kann entweder einer der Standard-Zahlungsmethoden-Identifikationsstrings oder eine URL sein, die sowohl identifiziert als auch Anfragen für den Zahlungshandler behandelt, wie z. B. https://apple.com/apple-pay.

MerchantValidationEvent.validationURL

Ein String, der eine URL angibt, von der die Website oder App spezifische Validierungsinformationen des Zahlungshandlers abrufen kann. Sobald diese Daten abgerufen sind, sollten die Daten (oder ein Versprechen, das die Validierungsdaten auflöst) in complete() übergeben werden, um zu bestätigen, dass die Zahlungsanforderung von einem autorisierten Händler stammt.

Beispiele

In diesem Beispiel wird ein Ereignishandler für das merchantvalidation Ereignis eingerichtet. Er verwendet fetch(), um eine Anfrage an seinen eigenen Server mit einem Argument der Validierungs-URL der Zahlungsmethode zu senden, die von der validationURL Eigenschaft des Ereignisses bezogen wurde. Der Händler-Server sollte die Validierungs-URL gemäß der Zahlungshandlerrichtlinien aufrufen. Normalerweise 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 handhabt, hängt von der Serverimplementierung und den Zahlungshandlerrichtlinien ab. Der vom Validierungsserver bereitgestellte Inhalt wird an den Händler-Server weitergeleitet und dann vom Erfüllungshandler des fetch()-Aufrufs an die complete() Methode des Ereignisses zurückgegeben. Diese Antwort gibt dem Zahlungshandler an, ob der Händler validiert ist.

Sie können auch die onmerchantvalidation Ereignis-Handler-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();

Weitere Informationen finden Sie unter Händlervalidierung.

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch