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
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
vonPaymentDetailsModifier
-Objekten, deren Eigenschaften inPaymentRequestEvent.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.
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