Journal des modifications d’Elements avec l’API Checkout Sessions de la version bêta
Suivez les modifications apportées à l’intégration d’Elements avec l’API Checkout Sessions de la version bêta.
Alerte
Ce document contient les journaux des modifications relatives aux versions bêta d’Elements avec l’API Checkout Sessions.
Si vous utilisez déjà la version Basil d’Elements avec l’API Checkout Sessions, ce document ne vous concerne pas.
Migration vers Basil
Modifications
- Breaking Les méthodes asynchrones, telles que confirm ou applyPromotionCode, se résolvent avec un schéma différent :
- En cas de réussite, le nouvel état de la session est renseigné sous la clé
session
. Auparavant, cette information se trouvait sous la clésuccess
.
- En cas de réussite, le nouvel état de la session est renseigné sous la clé
- Breaking Une erreur est désormais générée lors de la transmission de returnUrl sur confirm alors que return_url a déjà été défini sur la session Checkout.
- Breaking L’URL de redirection après une confirmation de réussite avait auparavant des paramètres de requête incohérents. Les paramètres supplémentaires sont désormais retirés et l’URL ne contient que ce qui est fourni dans returnUrl sur confirm ou return_url sur la session Checkout.
- Breaking Amélioration de la latence sur l’API Checkout Session pour les sessions en mode abonnement et correction d’un bogue qui empêchait vos clients de mettre à jour une session après la première tentative de paiement
- The change creates the subscription after the user has completed the payment, so
checkout_
andsession. invoice checkout_
are null until the Checkout Session completes.session. subscription - If you currently rely on the deprecated
payment_
field, we recommend using theintent. invoice checkout_
webhook, which ensures an invoice is present, andsession. completed checkout_
or Invoice Payment list to find the associated invoice.session. invoice - Pour en savoir plus, consultez le journal des modifications de l’API.
- The change creates the subscription after the user has completed the payment, so
- Ajout de percentOff à discountAmounts en tant qu’option d’affichage des réductions.
Mise à niveau
Avant de migrer vers Basil, commencez par mettre à jour votre intégration vers custom_
.
- Si vous utilisez des paquets NPM Stripe, vous devez d’abord mettre à niveau
@stripe/stripe-js
vers la version7.
et0. 0 @stripe/react-stripe-js
vers la version3.
, ou une version supérieure.6. 0 - Si vous chargez Stripe.js à l’aide de la balise de script, mettez à jour la balise de script pour qu’elle utilise le Stripe.js versionné en remplaçant la balise comme suit :
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3"></script> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
- Retirez l’en-tête bêta de Stripe.js lors de l’initialisation de Stripe.js.
- Retirez l’en-tête bêta de la version de l’API et indiquez que la version de l’API doit être au moins
2025-03-31.
sur votre intégration dorsale.basil
Journal des modifications, version bêta
Elements avec l’API Checkout Sessions de la version bêta utilise deux types de versions bêta :
- Un en-tête bêta Stripe.js (par exemple,
custom_
), qui est défini dans votre intégration frontale.checkout_ beta_ 6 - Un en-tête bêta de l’API (p. ex.,
custom_
), défini dans l’application dorsale de votre intégration.checkout_ beta=v1
Versions bêta frontales
Indiquez la version bêta de l’application frontale lors de l’initialisation de Stripe.js.
custom_checkout_beta_6
Si vous utilisez des paquets NPM Stripe, vous devez d’abord mettre à niveau@stripe/stripe-js
vers la version 6.
ou une version ultérieure et @stripe/react-stripe-js
vers la version 3.
ou une version ultérieure.
- Breaking Le signe de total.appliedBalance a été inversé. Désormais, un nombre positif fait augmenter le montant à payer, tandis qu’un nombre négatif le fait diminuer.
- Breaking Remplacement de
clientSecret
par fetchClientSecret. Mettez à jour votre intégration pour transmettre une fonction asynchrone se résolvant en clé secrète du client au lieu de transmettre une valeur statique. - Breaking Les méthodes Elements ont été renommées.
- Si vous utilisez React Stripe.js, vous n’avez rien d’autre à faire que de mettre à niveau
@stripe/react-stripe-js
. - Si vous utilisez HTML/JS :
- Utilisez
createPaymentElement()
au lieu decreateElement('payment')
. - Utilisez
createBillingAddressElement()
au lieu decreateElement('address', {mode: 'billing'})
. - Utilisez
createShippingAddressElement()
au lieu decreateElement('address', {mode: 'shipping'})
. - Utilisez
createExpressCheckoutElement()
au lieu decreateElement('expressCheckout')
. - Utilisez
getPaymentElement()
au lieu degetElement('payment')
. - Utilisez
getBillingAddressElement()
au lieu degetElement('address', {mode: 'billing'})
. - Utilisez
getShippingAddressElement()
au lieu degetElement('address', {mode: 'shipping'})
. - Utilisez
getExpressCheckoutElement()
au lieu degetElement('expressCheckout')
.
- Utilisez
- Si vous utilisez React Stripe.js, vous n’avez rien d’autre à faire que de mettre à niveau
- Breaking Mise à jour des champs liés à la confirmation pour refléter plus précisément l’état de la session.
- canConfirm répond désormais à n’importe quel composant Billing Address Element ou Shipping Address Element monté.
- canConfirm passe désormais à
false
si une confirmation est en cours. confirmationRequirements
supprimé.
- Breaking updateEmail provoque désormais une erreur si customer_email a été fourni lors de la création de la session Checkout. Si vous envisagez de préremplir une adresse de courriel que votre client pourra mettre à jour, appelez
updateEmail
dès le chargement de la page au lieu de transmettrecustomer_
.email - Breaking returnUrl doit être une URL absolue (commençant par exemple par
https://
plutôt que par une URL relative, comme/success
). - Breaking Les champs de tarification ont été mis à jour vers un objet imbriqué pour simplifier le rendu.
- Les valeurs numériques ont été remplacées par un objet contenant
amount
(une chaîne de devise formatée, telle que$10.
) et00 minorUnitsAmount
, un nombre entier représentant la valeur dans la plus petite unité de la devise. Si vous lisez déjà le montant, lisez plutôt à partir deminorUnitsAmount
.- Par exemple, remplacez
total.
partotal total.
.total. minorUnitsAmount
- Par exemple, remplacez
- Vous devez lire soit
total.
, soit chacun des composantstotal. amount total.
,total. minorUnitsAmount currency
etminorUnitsAmountDivisor
à partir de l’objetcheckout
, et les afficher dans votre interface utilisateur, sinon une erreur sera générée. Cela permet de synchroniser votre page de paiement avec toutes les mises à jour de CheckoutSession, y compris l’ajout de nouvelles fonctionnalités de Stripe, avec des modifications minimes du code de l’interface utilisateur.
- Les valeurs numériques ont été remplacées par un objet contenant
- Il est désormais possible de collecter les numéros d’identification fiscale des clients. Découvrez comment collecter les numéros d’identification fiscale.
- Un assistant en mode test uniquement est désormais disponible au bas de votre page de paiement; il propose des conseils pour votre intégration et des raccourcis pour des scénarios de test courants.
custom_checkout_beta_5
- Breaking La fonction
initCustomCheckout
a été renommée initCheckout- Dans React Stripe.js,
CustomCheckoutProvider
a été renommé àCheckoutProvider
etuseCustomCheckout
a été renommé àuseCheckout
.
- Dans React Stripe.js,
- Breaking Pour confirmer Express Checkout Element, appelez la confirmation, en transmettant l’événement de confirmation comme
expressCheckoutConfirmEvent
- Auparavant, Express Checkout Element était confirmé en faisant appel à
event.
.confirm()
- Auparavant, Express Checkout Element était confirmé en faisant appel à
- Breaking Lorsque la confirmation est appelée, le Payment Element et l’Address Element valident les entrées de formulaire et affichent les erreurs éventuelles.
- Breaking Les messages d’erreur ont été normalisés et améliorés.
- Les erreurs renvoyées/résolues par une fonction représentent des scénarios connus, tels que des informations de paiement non valides ou des fonds insuffisants. Il s’agit de problèmes prévisibles qui peuvent être communiqués à votre client en affichant le
message
sur la page de paiement. - Les erreurs envoyées/rejetées par une fonction représentent des erreurs dans l’intégration elle-même, telles que des paramètres ou une configuration non valides. Ces erreurs ne sont pas destinées à être affichées à vos clients.
- Les erreurs renvoyées/résolues par une fonction représentent des scénarios connus, tels que des informations de paiement non valides ou des fonds insuffisants. Il s’agit de problèmes prévisibles qui peuvent être communiqués à votre client en affichant le
- Breaking Les méthodes asynchrones, telles que confirm ou applyPromotionCode, se résolvent avec un schéma différent :
- Un champ discriminateur
type="success"|"error"
a été ajouté. - En cas de réussite, l’état de la session mise à jour est indiqué sous la clé
success
. Auparavant, il était indiqué sous la clésession
. - Dans le cas contraire, l’erreur continue d’être renseignée sous la clé
error
.
- Un champ discriminateur
- Ajout des options
email
,phoneNumber
,billingAddress
, etshippingAddress
à confirmer. - Breaking L’Address Element ne met plus automatiquement à jour les champs billingAddress ou shippingAddress de la session.
- Tant que l’Address Element est monté, les valeurs de formulaire seront automatiquement utilisées lors de l’appel de confirmation.
- Écoutez l’événement de changement pour utiliser la valeur de l’Address Element avant la confirmation.
custom_checkout_beta_4
- Ajout d’images à l’objet Session.
- Ajout de champs comme option lors de la création du composant Payment Element.
- Ajout de l’option paymentMethods lors de la création du composant Express Checkout Element.
- Breaking La transmission d’options non valides à createElement provoque désormais une erreur. Auparavant, les options non reconnues étaient ignorées.
- Breaking updateEmail et updatePhoneNumber appliquent les modifications de manière asynchrone. L’appel de ces méthodes avant que le client n’ait fini de saisir des valeurs complètes peut entraîner de faibles performances.
- Au lieu d’appeler
updateEmail
ouupdatePhoneNumber
lors de l’événement de modification de chaque saisie, attendez que votre client ait terminé la saisie, par exemple lorsque le focus est retiré de la saisie ou lorsqu’il soumet le formulaire pour paiement. updateEmail
valide désormais la saisie comme étant une adresse de courriel correctement formatée et renvoie une erreur en cas de saisie non valide.updatePhoneNumber
ne valide toujours pas la chaîne de caractères saisie.
- Au lieu d’appeler
custom_checkout_beta_3
- Les champs suivants ont été ajoutés à l’objet Session :
- Les cartes enregistrées peuvent désormais être réutilisées. Découvrez comment enregistrer et réutiliser les moyens de paiement.
- Breaking L’affichage par défaut du composant Payment Element a été modifié par
accordion
.- Pour continuer à utiliser l’ancienne mise en page par défaut, vous devez explicitement spécifier
layout='tabs'
.
- Pour continuer à utiliser l’ancienne mise en page par défaut, vous devez explicitement spécifier
- Breaking Le comportement par défaut de confirm a été modifié pour toujours rediriger vers votre
return_
après une confirmation de réussite du paiement.url - Auparavant,
confirm
ne redirigeait le client que s’il choisissait un moyen de paiement basé sur la redirection. Pour continuer à utiliser l’ancien comportement, vous devez transmettre redirect=‘if_required’ surconfirm
.
- Auparavant,
custom_checkout_beta_2
- Breaking Le champ
lineItem.
a été retiré et remplacé par lineItem.recurring.intervalCount.recurring. interval_ count - Breaking Le champ
lineItem.
a été supprimé et remplacé par le champ suivant :amount
custom_checkout_beta_1
Il s’agit de la version bêta frontale initiale.
Journal des modifications de l’application dorsale
Indiquez la version bêta de l’application dorsale lors de la configuration de la bibliothèque de votre serveur.
Il n’y a aucun changement dans la version bêta de l’application dorsale.