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 der PaymentRequestEvent-Schnittstelle wird vom Zahlungsabwickler verwendet, um einen aktualisierten Gesamtbetrag zu erhalten, basierend auf 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.
methodDetailsOptional-
Ein Objekt, das spezifische Details der Methode 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-
Ein aktualisierter Gesamtbetrag basierend auf der geänderten Zahlungsmethode. Der Gesamtbetrag kann sich beispielsweise ändern, weil die Rechnungsadresse der vom Benutzer ausgewählten Zahlungsmethode die anwendbare Umsatzsteuer ändert.
modifiers-
Ein
ArrayvonPaymentDetailsModifier-Objekten, deren Eigenschaften inPaymentRequestEvent.modifiersbeschrieben sind. paymentMethodErrors-
Ein Objekt, das Validierungsfehler für die Zahlungsmethode enthält, falls vorhanden.
Beispiele
Das Folgende zeigt ein triviales Code-Snippet, das in einem Service Worker verwendet werden könnte, um eine Benachrichtigung über eine Änderung der Zahlungsmethode an das Hauptfenster des Zahlungsabwicklers zu senden. Für ein vollständiges Testbeispiel siehe Zahlungsabwickler zum Testen des Zahlungsänderungsereignisses.
function notifyPaymentMethodChanged(e) {
e.changePaymentMethod("someMethod")
.then((paymentMethodChangeResponse) => {
paymentHandlerWindow.postMessage(paymentMethodChangeResponse);
})
.catch((error) => {
sendMessage({ error: error.message });
});
}
Spezifikationen
| Specification |
|---|
| Web-based Payment Handler API> # changepaymentmethod-method> |