Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageUtiliser Managed Payments
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
    Présentation
    Guides QuickStart
    Stripe Elements
    Comparer Checkout Sessions et PaymentIntents
    Concevoir une intégration avancée
    Personnaliser l'apparence
    Gérer les moyens de paiement
    Collecter des informations supplémentaires
    Créer une intégration pour les abonnements
    Mises à jour dynamiques
      Options de livraison
      Postes de facture
      Durée de l’essai
      Discounts
      Montants des paiements
      Quantités de postes de facture
    Ajouter des réductions
    Percevoir les taxes sur vos paiements
    Utiliser des crédits
    Offrir aux clients la possibilité de payer dans leur devise locale
    Enregistrer et récupérer les moyens de paiement des clients
    Envoyer des reçus ou factures après paiement
    Approuver manuellement les paiements sur votre serveur
    Autoriser et capturer un paiement séparément
    Liste des modifications de la version bêta d'Elements avec l'API Checkout Sessions
Développer une intégration dans l'application
Paiements par TPE
Terminal
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsBuild a custom integration with ElementsDynamic updates

Rendre les quantités des postes ajustables

Apprenez à permettre à vos clients de réajuster la quantité des postes lors du paiement.

Les postes de chaque Checkout Session assurent le suivi des achats de vos clients. Vous pouvez configurer la session Checkout pour permettre aux clients de réajuster les quantités des postes lors du paiement.

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.

Activer les quantités modifiables
Côté serveur

Remarque

Certaines actions de mise à jour des postes, telles que la possibilité d’ajouter de nouveaux postes, ne sont pas prises en charge pour cette intégration.

Définissez adjustable_quantity sur vos line_items lors de la création d’une session Checkout afin de permettre à vos clients de modifier la quantité d’un élément pendant le paiement.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d "line_items[0][adjustable_quantity][enabled]"=true \ -d "line_items[0][adjustable_quantity][maximum]"=100 \ -d "line_items[0][adjustable_quantity][minimum]"=0 \ -d mode=payment \ -d ui_mode=custom \ -d return_url={{RETURN_URL}}

Vous pouvez personnaliser les paramètres par défaut pour les quantités minimale et maximale autorisées en définissant adjustable_quantity.minimum et adjustable_quantity.maximum Par défaut, la quantité minimale ajustable d’un poste est de 0 et la quantité maximale ajustable est de 99. Vous pouvez spécifier une valeur allant jusqu’à 999 999 pour adjustable_quantity.maximum.

Checkout empêche le client de retirer un élément s’il s’agit du seul élément restant.

Mettre à jour les quantités des postes
Côté client

Utilisez updateLineItemQuantity pour modifier la quantité d’un poste en réponse à une interaction avec le client, par exemple en cliquant sur un bouton pour augmenter la quantité. Transmettez l’identifiant du poste line item ID ainsi que la nouvelle quantité.

index.html
<button class="increment-quantity-button" data-line-item="{{line item ID}}">+</button>
checkout.js
const checkout = stripe.initCheckout({clientSecret}); const button = document.querySelector('.increment-quantity-button'); const lineItem = button.getAttribute("data-line-item"); checkout.loadActions().then((loadActionsResult) => { if (loadActionsResult.type === 'success') { const {actions} = loadActionsResult; const session = loadActionsResult.getSession(); const quantity = session.lineItems.find((li) => li.id === lineItem).quantity; button.addEventListener('click', () => { actions.updateLineItemQuantity({ lineItem, quantity: quantity + 1, }) }); } else { const {error} = loadActionsResult; } });

Gérer les transactions réussies
Côté serveur

Une fois le paiement effectué, vous pouvez lancer une requête sur les postes finalisés et leurs quantités. Si votre client supprime un poste, celui-ci est également supprimé de la réponse relative aux postes. Consultez le guide d’exécution pour apprendre à créer un gestionnaire d’événements pour traiter les sessions Checkout terminées.

Remarque

Pour tester votre gestionnaire d’événements, installez la CLI Stripe et utilisez stripe listen --forward-to localhost:4242/webhook pour transmettre des événements à votre serveur local.

Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
"sk_test_BQokikJOvBiI2HlWgH4olfQ2"
require 'sinatra' # You can find your endpoint's secret in your webhook settings endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end if event['type'] == 'checkout.session.completed' checkout_session = event['data']['object'] line_items = Stripe::Checkout::Session.list_line_items(checkout_session['id'], {limit: 100}) # Fulfill the purchase... begin fulfill_order(checkout_session, line_items) rescue NotImplementedError => e return status 400 end end status 200 end def fulfill_order(checkout_session, line_items) # TODO: Remove error and implement... raise NotImplementedError.new(<<~MSG) Given the Checkout Session "#{checkout_session.id}" load your internal order from the database here. Then you can reconcile your order's quantities with the final line item quantity purchased. You can use `checkout_session.metadata` and `price.metadata` to store and later reference your internal order and item ids. MSG end
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc