Elements mit Checkout Sessions API-Änderungsprotokoll (Beta)
Verfolgen Sie Änderungen an der Beta-Integration der Elements with Checkout Sessions API.
Achtung
Dieses Dokument enthält Änderungsprotokolle im Zusammenhang mit Beta-Versionen von Elements mit der Checkout Sessions API.
Wenn Sie bereits die Basil-Version von Elements mit der Checkout Sessions API verwenden, gilt diese Dokumentation nicht für Sie.
Umstellung auf 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
session
aufgelistet. 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
- Durch die Änderung wird das Abonnement erstellt, nachdem der/die Nutzer/in die Zahlung abgeschlossen hat, sodass
payment_
intent. invoice null
ist, bis die Checkout-Sitzung abgeschlossen ist. - Wir empfehlen die Verwendung des Webhooks
checkout_
, wenn Sie derzeitsession. completed payment_
verwenden, wodurch sichergestellt wird, dassintent. invoice payment_
vorhanden ist.intent. invoice - Weitere Informationen finden Sie im API-Änderungsprotokoll.
- Durch die Ä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.
Upgrade
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-js
auf mindestens7.
und0. 0 @stripe/react-stripe-js
auf mindestens3.
aktualisieren.6. 0 - Wenn Sie Stripe.js über das Skript-Tag laden, aktualisieren Sie das Skript-Tag, um versioniertes Stripe.js zu verwenden, indem Sie das Tag wie folgt ersetzen:
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3"></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 für Ihre Frontend-Integration festgelegt wird.checkout_ beta_ 6 - Eine API-Version des Beta-Header (z. B.
custom_
), die in Ihrer Backend-Integration festgelegt ist.checkout_ beta=v1
Beta-Versionen des Frontends
Geben Sie beim Initiieren von Stripe.js die Beta-Version des Frontends 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
clientSecret
wurde 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-js
zu 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. confirmationRequirements
wurde 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
updateEmail
auf, 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 currency
undminorUnitsAmountDivisor
aus 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
initCustomCheckout
wurde in initCheckout umbenannt- In React Stripe.js wurde
CustomCheckoutProvider
inCheckoutProvider
unduseCustomCheckout
inuseCheckout
umbenannt.
- In React Stripe.js wurde
- Breaking Um das Express Checkout Element zu bestätigen, rufen Sie „bestätigen“ 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
message
auf 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
success
aufgelistet. Zuvor befand sich dies unter dem Schlüsselsession
. - Andernfalls wird der Fehler weiterhin unter dem Schlüssel
error
ausgefüllt.
- Das Diskriminatorfeld
- Die Optionen
email
,phoneNumber
,billingAddress
undshippingAddress
wurden 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.
- Added fields as an option when creating the Payment Element.
- Added paymentMethods as an option when creating the Express Checkout Element.
- Breaking Changes Passing invalid options to createElement now throws an error. Previously, unrecognized options would be silently ignored.
- 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
updateEmail
oderupdatePhoneNumber
bei 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.updatePhoneNumber
fü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
accordion
geä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
confirm
nur 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.
Änderungsprotokoll des Backend
Geben Sie die Beta-Version des Backends an, wenn Sie Ihre Serverbibliothek einrichten.
Es werden keine Änderungen an der Betaversion vorgenommen.