PaymentRequestEvent: changePaymentMethod() Methode

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Hinweis: Dieses Feature ist nur verfügbar in Service Workers.

Die changePaymentMethod()-Methode des PaymentRequestEvent-Interfaces wird vom Zahlungshandler verwendet, um eine aktualisierte Gesamtsumme zu erhalten, basierend auf solchen 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, der mit einem PaymentRequestDetailsUpdate-Objekt aufgelöst wird. Dieses Objekt enthält die folgenden Eigenschaften:

error

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

total

Eine aktualisierte Gesamtsumme basierend auf der geänderten Zahlungsmethode. Die Gesamtsumme kann sich ändern, z.B. weil die Rechnungsadresse der vom Benutzer ausgewählten Zahlungsmethode die anwendbare Umsatzsteuer verändert.

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 Beispiel zeigt einen trivialen Codeausschnitt, der in einem Service Worker verwendet werden könnte, um eine Benachrichtigung über eine Änderung der Zahlungsmethode an das Hauptzahlungsfenster zu senden. Für ein vollständiges Testbeispiel siehe 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

BCD tables only load in the browser

Siehe auch