Mettre à jour dynamiquement les postes
Apprenez à modifier les prix et le contenu d’un panier lors du paiement.
Version bêta privée
Cette fonctionnalité est disponible en version bêta privée.{ % collect-email modal=true modal_link_text=“Request access to dynamic updates to checkout.” list=“checkout-beta@stripe.com” send_direct_email=true intro_text=“Dynamic line items” body_text=“Cette fonctionnalité en version bêta vous permet de mettre à jour automatiquement les postes dans les Elements avec l’intégration de l’API Checkout Sessions. Saisissez votre adresse e-mail ci-dessous pour demander un accès anticipé.” form_cta_text=“Sign up” success_text=“Merci ! Nous vous contacterons bientôt.” show_email_confirmation=true % }
Découvrez comment ajouter, supprimer ou mettre à jour dynamiquement les postes inclus dans une session Checkout.
Cas d’usage
Ce guide vous explique comment mettre à jour des postes pour augmenter la vente d’un abonnement, mais vous pouvez également :
- Vérifier l’inventaire : effectuez une vérification de vos stocks et réservez des articles lorsque les clients tentent de modifier des quantités d’articles.
- Ajout de nouveaux produits : Ajoutez un produit gratuit si le total de la commande dépasse un certain montant.
- Mise à jour des tarifs de livraison : Si le total de la commande change, mettez à jour les frais de livraison en combinant la méthode décrite dans ce guide avec celle indiqués à la rubrique Personnalisation des options de livraison lors du paiement.
- Mise à jour des taux de taxe : Si vous n’utilisez pas Stripe Tax, vous pouvez mettre à jour de manière dynamique les taux de taxe appliqués aux postes de facture en fonction de l’adresse de livraison saisie.
API Payment Intents
Si vous utilisez l’API Payment Intents, vous devez suivre manuellement les mises à jour des postes et modifier le montant du paiement, ou créer un nouveau PaymentIntent avec les montants réajustés.
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, mettez d’abord à jour votre SDK afin d’utiliser l’en-tête de version bêta checkout_.
Configurer les autorisations de mise à jour pour la session CheckoutCôté serveur
Lorsque vous créez la session Checkout, transmettez l’option permissions.update_line_items=server_only pour désactiver les mises à jour côté client et permettre la mise à jour des postes, comme updateLineItemQuantity, à partir de votre serveur.
Mettre à jour dynamiquement les postesCôté serveur
Créez un endpoint sur votre serveur pour mettre à jour les postes pendant la session Checkout. Vous l’appellerez à partir de l’interface dans une étape ultérieure.
Conseil en matière de sécurité
Le code côté client s’exécute dans un environnement contrôlé par l’utilisateur. Un utilisateur malveillant peut contourner votre validation côté client, intercepter et modifier des requêtes, ou créer de nouvelles requêtes vers votre serveur.
Lors de la création d’un endpoint, nous vous recommandons ce qui suit :
- Créez des endpoints pour des interactions spécifiques avec les clients au lieu de les rendre génériques. Par exemple, « ajouter des éléments de vente croisée » au lieu d’une action générale de « mise à jour ». Des endpoints spécifiques peuvent faciliter l’écriture et la maintenance de la logique de validation.
- Ne transmettez pas les données de session directement du client à votre endpoint. Des clients malveillants peuvent modifier les données de requête, ce qui en fait une source peu fiable pour déterminer l’état d’une session de paiement. Au lieu de cela, transmettez l’identifiant de session à votre serveur et utilisez-le pour récupérer en toute sécurité les données à partir de l’API Stripe.
Lors de la mise à jour des postes, vous devez retransmettre l’ensemble du tableau des postes.
- Pour conserver un poste existant, indiquez son
id. - Pour mettre à jour un poste existant, indiquez son
idainsi que les nouvelles valeurs des champs à mettre à jour. - Pour ajouter un nouvel élément, indiquez un
priceet unequantitysansid. - Pour supprimer un poste existant, omettez l’identifiant du poste dans le tableau retransmis.
- Pour réorganiser un poste, indiquez son
idà la position souhaitée dans le tableau retransmis.