PaymentRequestEvent: changePaymentMethod() Methode

Limited availability

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist nur in Service Workers verfügbar.

Die changePaymentMethod()-Methode des PaymentRequestEvent-Interfaces wird von der Zahlungsabwicklung verwendet, um eine aktualisierte Gesamtsumme zu erhalten, basierend auf den Zahlungsdetails wie der Rechnungsadresse.

Wenn diese Methode aufgerufen wird, wird ein PaymentMethodChangeEvent ausgelöst.

Syntax

js
changePaymentMethod(methodName)
changePaymentMethod(methodName, methodDetails)

Parameter

methodName

Der Name der zu verwendenden Zahlungsmethode.

methodDetails Optional

Ein Objekt, das methodenspezifische Details enthält, die aktualisiert werden.

Rückgabewert

Ein Promise, das mit einem PaymentRequestDetailsUpdate-Objekt aufgelöst wird. Dieses Objekt enthält die folgenden Eigenschaften:

error

Ein String, der erklärt, warum die vom Benutzer gewählte Zahlungsmethode nicht verwendet werden kann.

total

Eine aktualisierte Gesamtsumme basierend auf der geänderten Zahlungsmethode. Die Gesamtsumme kann sich ändern, zum Beispiel weil die Rechnungsadresse der vom Benutzer gewählten Zahlungsmethode die anwendbare Mehrwertsteuer beeinflusst.

modifiers

Ein Array von PaymentDetailsModifier-Objekten, deren Eigenschaften in PaymentRequestEvent.modifiers beschrieben sind.

paymentMethodErrors

Ein Objekt, das Validierungsfehler für die Zahlungsmethode enthält, falls vorhanden.

Beispiele

Das folgende ist ein einfaches Codebeispiel, das in einem Service Worker verwendet werden könnte, um eine Benachrichtigung über eine Änderung der Zahlungsmethode an das Hauptfenster des Zahlungsverarbeiters zu senden. Ein vollständiges Testbeispiel finden Sie unter Payment handler for testing payment method change event.

js
function notifyPaymentMethodChanged(e) {
  e.changePaymentMethod("someMethod")
    .then((paymentMethodChangeResponse) => {
      paymentHandlerWindow.postMessage(paymentMethodChangeResponse);
    })
    .catch((error) => {
      sendMessage({ error: error.message });
    });
}

Spezifikationen

Specification
Payment Handler API
# changepaymentmethod-method

Browser-Kompatibilität

Siehe auch