Mettre à jour dynamiquement les postesVersion bêta privée
Mettez à jour les postes en réponse aux modifications apportées lors du paiement.
Version bêta privée
Cette fonctionnalité est disponible en version bêta privée. Request access to dynamic updates to checkout.
Learn how to dynamically add, remove, or update line items included in a Checkout Session.
Use cases 
This guide demonstrates how to update line items to upsell a subscription, but you can also:
- Check inventory: Run inventory checks and holds when customers attempt to change item quantities.
- Add new products: Add a complimentary product if the order total exceeds a specific amount.
- Update shipping rates: If the order total changes, update shipping rates by combining the method described in this guide with what’s out on Customize shipping options during checkout.
- Update tax rates: If you’re not using Stripe Tax, you can dynamically update tax rates on line items based on the shipping address entered.
Configurer le SDKCôté serveur
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Mettre à jour le SDK du serveurCôté serveur
Pour utiliser cette version bêta, commencez par mettre à jour votre SDK afin d’utiliser l’en-tête checkout_
de la version bêta.
Configurer les autorisations de mise à jour de Checkout SessionCôté serveur
Transmettez permissions.update_line_items=server_only lors de la création de la session Checkout pour activer la mise à jour des postes à partir de votre serveur. La transmission de cette option désactive également les mises à jour des postes côté client, tels que updateLineItemQuantity, ce qui garantit que toutes les mises à jour transitent par votre serveur.
Mise à jour dynamique des postesCôté serveur
Créez un nouvel endpoint sur votre serveur pour mettre à jour les postes de la session Checkout. Vous l’appellerez à partir du front-end dans une étape ultérieure.
Conseil en matière de sécurité
Il est essentiel de comprendre que le code côté client s’exécute dans un environnement entièrement contrôlé par l’utilisateur. Un utilisateur malveillant peut contourner votre validation côté client, intercepter et modifier les requêtes, ou même créer des requêtes entièrement nouvelles pour votre serveur.
Pour concevoir l’endpoint, nous recommandons ce qui suit :
- Concevez des endpoints pour des interactions spécifiques avec le client plutôt que de les formuler de manière trop générique (par exemple, « ajouter un article de vente croisée » plutôt qu’une action générale comme « mettre à jour »). Des endpoints spécifiques contribuent à la clarté de l’objectif et facilitent l’écriture et le maintien de la logique de validation.
- Évitez de transmettre les données de session directement du client à votre endpoint. Les clients malveillants peuvent modifier les données de requête, ce qui en fait une source peu fiable pour déterminer l’état de la session Checkout. Transmettez plutôt l’ID de session à votre serveur et utilisez-le pour récupérer en toute sécurité les données auprès de l’API de Stripe.
Lorsque vous mettez à jour des postes, vous devez retransmettre l’intégralité du tableau des postes.
- Pour conserver un poste existant, indiquez son
id
. - Pour mettre à jour un poste existant, indiquez son
id
ainsi que les nouvelles valeurs des champs à mettre à jour. - Pour ajouter un nouveau poste, indiquez un prix dans
price
et une quantité dansquantity
sans saisir unid
. - Pour supprimer un poste existant, omettez l’ID du poste dans le tableau retransmis.
- Pour modifier l’ordre d’un poste, indiquez son
id
à l’endroit souhaité dans le tableau retransmis.