Elements mit Checkout Sessions API-Änderungsprotokoll (Beta)
Verfolgen Sie Änderungen an der Beta-Integration der Elements with Checkout Sessions API.
Warnung
Dieses Dokument enthält Änderungsprotokolle im Zusammenhang mit Beta-Versionen von Elements mit der Checkout Sessions API.
Sollten Sie bereits die Clover-Version von Elements mit Checkout Sessions API verwenden, betrifft dieses Änderungsprotokoll Sie nicht.
Umstellung auf Clover
Clover-Änderungen
- Breaking Die Methode stripe.initCheckout ist nun synchron statt asynchron. Dies reduziert die Render-Latenz und ermöglicht es Elements, Skeleton Loader früher anzuzeigen. Weitere Informationen zur Migration finden Sie unter Updates initCheckout to be synchronous.
- Breaking Gespeicherte Zahlungsmethoden werden nun automatisch im Zahlungselement aktiviert, wenn sie in der Checkout-Sitzung konfiguriert sind, ohne dass eine zusätzliche Konfiguration auf Kundenseite erforderlich ist. Weitere Informationen finden Sie unter Aktualisiertes Standardverhalten für gespeicherte Zahlungsmethoden.
- Breaking Postleitzahlen werden bei Kartenzahlungen in Kanada, dem Vereinigten Königreich und Puerto Rico nicht mehr automatisch erfasst. Bitte beachten Sie den Abschnitt Entfernen der Postleitzahl bei Kartenzahlungen, falls Sie auf diese Daten angewiesen sind.
- Breaking Für React-Integrationen:
- Die Importpfade wurden von
@stripe/react-stripe-jszu@stripe/react-stripe-js/checkoutgeändert. - useCheckout gibt nun eine disjunkte Vereinigung zurück, die den asynchronen Status (
{type: 'loading'},{type: 'success', checkout: .oder. . } {type: 'error', error: .) beschreibt anstatt einen Fehler auszulösen.. . } - CheckoutProvider rendert nun untergeordnete Elemente bedingungslos, anstatt
nullzu rendern, wenn initCheckout nicht erfolgreich war
- Die Importpfade wurden von
Clover-Aktualisierung
Bevor Sie zu Clover migrieren, aktualisieren Sie zunächst Ihre Integration auf Basil.
- Sollten Sie Stripe-NPM-Pakete verwenden, ist es erforderlich,
@stripe/stripe-jsauf mindestens8.und0. 0 @stripe/react-stripe-jsauf mindestens5.zu aktualisieren. .0. 0 - Wenn Sie Stripe.js über das Script-Tag laden, aktualisieren Sie das Tag, um auf
Cloverzu verweisen, indem Sie die versionierte Stripe.js-Nomenklatur wie folgt verwenden:
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>
- Aktualisieren Sie die API-Version in Ihrer Backend-Integration auf mindestens
2025-09-30..clover
Weitere Informationen finden Sie im Changelog-Eintrag Updates initCheckout synchronisieren.
Umstellung auf Basil
Basil-Änderungen
- Breaking Asynchrone Methoden, z. B. „bestätigen“ oder applyPromotionCode, werden mit einem anderen Schema aufgelöst:
- Bei erfolgreicher Ausführung wird der aktualisierte Sitzungsstatus unter dem Schlüssel
sessionaufgelistet. Zuvor befand sich dies unter dem Schlüsselsuccess.
- Bei erfolgreicher Ausführung wird der aktualisierte Sitzungsstatus unter dem Schlüssel
- Breaking Bei der Übergabe von returnUrl auf confirm wird jetzt ein Fehler ausgegeben, wenn return_url bereits für die Checkout-Sitzung festgelegt wurde.
- Breaking Die Rückgabe-URL, auf die nach einer erfolgreichen Bestätigung umgeleitet wurde, enthielt zuvor inkonsistente Abfrageparameter. Zusätzliche Parameter wurden jetzt entfernt und die URL enthält nur das, was in returnUrl on confirm oder return_url in der Checkout-Sitzung angegeben ist.
- Breaking Verbessert die Latenz der Checkout Session API für Sitzungen im Abonnementmodus und behebt einen Fehler, durch den Ihre Kundinnen/Kunden eine Sitzung nach dem ersten Zahlungsversuch nicht aktualisieren konnten
- Bei der Änderung wird das Abonnement erstellt, nachdem der/die Nutzer/in die Zahlung abgeschlossen hat, sodass
checkout_undsession. invoice checkout_bis zum Abschluss der Checkout-Sitzung null sind.session. subscription - Wenn Sie derzeit das abgeschaffte Feld
payment_verwenden, empfehlen wir die Verwendung des Webhooksintent. invoice checkout_, der sicherstellt, dass eine Rechnung vorhanden ist, undsession. completed checkout_oder die Rechnungszahlungsliste, um die zugehörige Rechnung zu finden.session. invoice - Um mehr zu erfahren, lesen Sie den 2025-03-31.basil API changelog.
- Bei der Änderung wird das Abonnement erstellt, nachdem der/die Nutzer/in die Zahlung abgeschlossen hat, sodass
- percentOff zu discountAmounts als Option hinzugefügt, um Rabatte anzuzeigen.
Basil-Aktualisierung
Vor der Migration zu Basil müssen Sie zuerst Ihre Integration auf custom_ aktualisieren.
- Wenn Sie ein Stripe NPM-Paket verwenden, müssen Sie zuerst
@stripe/stripe-jsauf mindestens7.und0. 0 @stripe/react-stripe-jsauf mindestens3.aktualisieren.6. 0 - Wenn Sie Stripe.js über das Skript-Tag laden und noch
v3oderacaciaverwenden, aktualisieren Sie das Tag, um aufbasilzu verweisen, indem Sie die versionierte Stripe.js-Nomenklatur wie folgt verwenden:
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/stripe.js"></script> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
- Entfernen Sie den Beta-Header von Stripe.js beim Initialisieren von Stripe.js.
- Entfernen Sie den Beta-Header der API-Version und geben Sie als API-Version mindestens
2025-03-31.für Ihre Backend-Integration an.basil
Beta-Änderungsprotokoll
Die Beta der Elements with Checkout Sessions API verwendet zwei Arten von Beta-Versionen:
- Ein Stripe.js-Beta-Header (z. B.
custom_), der in Ihrer Frontend-Integration festgelegt ist.checkout_ beta_ 6 - Eine API-Version des Beta-Headers (z. B.
Custom_), die in Ihrer Backend-Integration festgelegt ist.Checkout_ beta=v1
Beta-Versionen des Frontends
Geben Sie bei der Initialisierung von Stripe.js die Frontend-Beta-Version an.
custom_checkout_beta_6
Wenn Sie ein Stripe NPM-Paket verwenden, müssen Sie zuerst @stripe/stripe-js auf mindestens 6. und @stripe/react-stripe-js auf mindestens 3. aktualisieren.
- Breaking Das Vorzeichen von total.appliedBalance wurde umgekehrt. Eine positive Zahl erhöht nun den zu zahlenden Betrag und eine negative Zahl verringert den zu zahlenden Betrag.
- Breaking
clientSecretwurde durch fetchClientSecret ersetzt. Aktualisieren Sie Ihre Integration, um anstelle eines statischen Werts eine asynchrone Funktion zu übergeben, die in das Client-Geheimnis aufgelöst wird. - Breaking Elements-Methoden wurden umbenannt.
- Wenn Sie React Stripe.js verwenden, müssen Sie nichts weiter tun, als
@stripe/react-stripe-jszu aktualisieren. - Wenn Sie HTML/JS verwenden:
- Verwenden Sie
createPaymentElement()stattcreateElement('payment'). - Verwenden Sie
createBillingAddressElement()stattcreateElement('address', {mode: 'billing'}). - Verwenden Sie
createShippingAddressElement()stattcreateElement('address', {mode: 'shipping'}). - Verwenden Sie
createExpressCheckoutElement()stattcreateElement('expressCheckout'). - Verwenden Sie
getPaymentElement()stattgetElement('payment'). - Verwenden Sie
getBillingAddressElement()stattgetElement('address', {mode: 'billing'}). - Verwenden Sie
getShippingAddressElement()stattgetElement('address', {mode: 'shipping'}). - Verwenden Sie
getExpressCheckoutElement()stattgetElement('expressCheckout').
- Verwenden Sie
- Wenn Sie React Stripe.js verwenden, müssen Sie nichts weiter tun, als
- Breaking Die Felder für die Bestätigung wurden aktualisiert, um den Sitzungsstatus genauer wiederzugeben.
- canConfirm reagiert jetzt auf jedes verbundene Billing Address Element oder Shipping Address Element.
- canConfirm wird jetzt
false, wenn eine Bestätigung während der Übertragung vorliegt. confirmationRequirementswurde entfernt.
- Breaking updateEmail gibt jetzt einen Fehler aus, wenn customer_email beim Erstellen der Checkout-Sitzung angegeben wurde. Wenn Sie beabsichtigen, eine E-Mail-Adresse, die Ihre Kundinnen/Kunden aktualisieren können, vorab anzugeben, rufen Sie
updateEmailauf, sobald die Seite geladen ist, stattcustomer_zu übergeben.email - Breaking returnUrl muss eine absolute URL sein (beginnt beispielsweise mit
https://und nicht mit einer relativen URL, wie/success). - Breaking Preisfelder wurden zur Vereinfachung des Renderings in ein verschachteltes Objekt geändert.
- Numerische Werte wurden durch ein Objekt ersetzt, das
amount(eine formatierte Währungszeichenfolge, z. B.$10.) und00 minorUnitsAmount, eine Ganzzahl, die den Wert in der kleinsten Währungseinheit darstellt, enthält. Wenn Sie den Betrag bereits lesen, lesen Sie stattdessenminorUnitsAmount.- Ersetzen Sie beispielsweise
total.durchtotal total..total. minorUnitsAmount
- Ersetzen Sie beispielsweise
- Sie müssen entweder
total.odertotal. amount total.undtotal. minorUnitsAmount currencyundminorUnitsAmountDivisoraus demcheckout-Objekt lesen und in Ihrer Nutzeroberfläche anzeigen. Andernfalls wird ein Fehler ausgegeben. Dies hilft Ihnen, Ihre Bezahlseite mit Aktualisierungen der CheckoutSession zu synchronisieren, einschließlich des Hinzufügens zukünftiger Stripe-Funktionen mit minimalen Änderungen am Nutzeroberflächencode.
- Numerische Werte wurden durch ein Objekt ersetzt, das
- Steuer-IDs von Kundinnen/Kunden können jetzt erfasst werden. Erfahren Sie, wie Sie Steuer-IDs erfassen.
- Unten auf Ihrer Bezahlseite ist jetzt ein Assistent nur für den Test-Modus verfügbar, der Anleitungen für Ihre Integration und Tastenkombinationen für gängige Testszenarien bietet.
custom_checkout_beta_5
- Breaking Die Funktion
initCustomCheckoutwurde in initCheckout umbenannt- In React Stripe.js wurde
CustomCheckoutProviderinCheckoutProviderunduseCustomCheckoutinuseCheckoutumbenannt.
- In React Stripe.js wurde
- Breaking Um das Express Checkout Element zu bestätigen, rufen Sie confirm auf und übergeben Sie das Bestätigungsereignis als
expressCheckoutConfirmEvent.- Zuvor wurde das Express Checkout Element durch Aufrufen von
event.bestätigt.confirm()
- Zuvor wurde das Express Checkout Element durch Aufrufen von
- Breaking Wenn „bestätigen“ aufgerufen wird, validieren das Payment Element und das Address Element die Formulareingaben und geben etwaige Fehler aus.
- Breaking Fehlermeldungen wurden vereinheitlicht und verbessert.
- Fehler, die von einer Funktion zurückgegeben/behoben werden, stellen bekannte Szenarien dar, wie z. B. ungültige Zahlungsdetails oder unzureichende Deckung. Dies sind vorhersehbare Probleme, die Sie Ihren Kundinnen/Kunden mitteilen können, indem Sie die
messageauf der Bezahlseite anzeigen. - Fehler, die von einer Funktion ausgelöst/zurückgewiesen werden, stellen Fehler in der Integration selbst dar, z. B. ungültige Parameter oder eine ungültige Konfiguration. Diese Fehler sollen Ihren Kundinnen und Kunden nicht angezeigt werden.
- Fehler, die von einer Funktion zurückgegeben/behoben werden, stellen bekannte Szenarien dar, wie z. B. ungültige Zahlungsdetails oder unzureichende Deckung. Dies sind vorhersehbare Probleme, die Sie Ihren Kundinnen/Kunden mitteilen können, indem Sie die
- Breaking Asynchrone Methoden, z. B. „bestätigen“ oder applyPromotionCode, werden mit einem anderen Schema aufgelöst:
- Das Diskriminatorfeld
type="success"|"error"wurde hinzugefügt. - Bei erfolgreicher Ausführung wird der aktualisierte Sitzungsstatus unter dem Schlüssel
successaufgelistet. Zuvor befand sich dies unter dem Schlüsselsession. - Andernfalls wird der Fehler weiterhin unter dem Schlüssel
errorausgefüllt.
- Das Diskriminatorfeld
- Die Optionen
email,phoneNumber,billingAddressundshippingAddresswurden zu „bestätigen“ hinzugefügt. - Breaking Das Address Element aktualisiert die Felder billingAddress oder shippingAddress in der Sitzung nicht mehr automatisch.
- Solange das Address Element verbunden ist, werden beim Aufruf von „bestätigen“ automatisch Formularwerte verwendet.
- Überwachen Sie das Änderungsereignis, um den Wert des Address Elements vor der Bestätigung zu verwenden.
custom_checkout_beta_4
- Bilder zum Sitzungs-Objekt hinzugefügt.
- Felder wurde als Option beim Erstellen des Payment Element hinzugefügt.
- paymentMethods wurde als Option beim Erstellen des Express Checkout Element hinzugefügt.
- Breaking Das Übergeben ungültiger Optionen an createElement löst jetzt einen Fehler aus. Zuvor wurden nicht erkannte Optionen stillschweigend ignoriert.
- Breaking updateE-Mail und updatePhoneNumber wenden Änderungen asynchron an. Das Aufrufen dieser Methoden, bevor der Kunde/die Kundin die Eingabe vollständiger Werte abgeschlossen hat, kann zu beeinträchtigter Leistung führen.
- Anstatt
updateEmailoderupdatePhoneNumberbei jedem Änderungsereignis der Eingabe aufzurufen, warten Sie, bis Ihr Kunde/Ihre Kundin die Eingabe abgeschlossen hat, zum Beispiel bei einer unscharfen Eingabe oder wenn er/sie das Formular zur Zahlung einreicht. updateEmailüberprüft jetzt, ob es sich bei der Eingabe um eine ordnungsgemäß gebildete E-Mail-Adresse handelt, und gibt einen Fehler zurück, wenn eine ungültige Eingabe verwendet wird.updatePhoneNumberführt immer noch keine Validierung der Eingabezeichenfolge durch.
- Anstatt
custom_checkout_beta_3
- Die folgenden Felder wurden zum Sitzungsobjekt hinzugefügt:
- Gespeicherte Karten können nun wiederverwendet werden. Erfahren Sie, wie Sie Zahlungsmethoden speichern und wiederverwenden.
- Breaking Das Standardlayout des Payment Element wurde in
accordiongeändert.- Um das vorherige Standardlayout weiterhin zu verwenden, müssen Sie explizit
layout='tabs'angeben.
- Um das vorherige Standardlayout weiterhin zu verwenden, müssen Sie explizit
- Breaking Das Standardverhalten von confirm wurde so geändert, dass es nach einer erfolgreichen Bestätigung immer an Ihre
return_weitergeleitet wird.url - Bisher wurde
confirmnur dann weitergeleitet, wenn der Kunde/die Kundin eine auf Weiterleitung basierende Zahlungsmethode gewählt hat. Um das bisherige Verhalten beizubehalten, müssen Sie redirect=‘if_required’ anconfirmübergeben.
- Bisher wurde
custom_checkout_beta_2
- Breaking Das Feld
lineItem.wurde entfernt und durch lineItem.recurring.intervalCount ersetzt.recurring. interval_ count - Breaking Das Feld
lineItem.wurde entfernt und durch Folgendes ersetzt:amount
custom_checkout_beta_1
Dies ist die erste Frontend-Betaversion.
Backend-Versionen
Geben Sie beim Einrichten Ihrer Server-Bibliothek die Backend-Beta-Version an.
Es werden keine Änderungen an der Betaversion vorgenommen.