Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Ask AI
Créez un compte
Connectez-vous
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Automatisation des opérations financières
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Aperçu
Billing
    Présentation
    À propos des API Billing
    Abonnements
      Présentation
      Démarrage rapide
      Cas d'usage
      Développer votre intégration
        Concevoir une intégration pour les abonnements
        Créer une intégration pour les abonnements
        Créer une intégration avec Salesforce
        Définitions d'événements pour les abonnements
      Fonctionnalités d'abonnement
      Analyses
    Invoicing
    Facturation à la consommation
    Connect et Billing
    Tax et Billing
    Devis
    Recouvrement de revenus
    Automatisations
    Scripts
    Comptabilisation des revenus
    Gestion des clients
    Droits d'accès
    Tester votre intégration
Tax
Rapports
Données
Constitution de start-up
AccueilAutomatisation des opérations financièresBillingSubscriptionsBuild your integration

Créer une intégration pour les abonnements

Créez et gérez des abonnements pour les paiements récurrents.

Copier la page
Page de paiement d'abonnement
Low-code

Personnalisez le logo, les images et les couleurs.

Utilisez les formulaires hébergés préconfigurés pour encaisser les paiements et gérer les abonnements de vos clients.

Dupliquez notre exemple d’intégration disponible sur GitHub.

Pour une version plus immersive de ce guide, reportez-vous à la documentation de démarrage rapide avec l’intégration Billing.

Découvrez l’exemple GitHub ou la demo.

Ce que vous allez créer

Ce guide explique comment mettre en place des abonnements mensuels à tarif fixe à l’aide de Stripe Checkout.

Ce guide vous explique comment :

  • Modéliser votre entreprise en créant un catalogue produits
  • Ajouter une session Checkout à votre site, avec un bouton et des pages de confirmation et d’annulation
  • Surveiller les événements d’abonnement et fournir l’accès à votre service
  • Configurer le portail client
  • Ajouter une session de portail client à votre site, avec un bouton et une redirection
  • Permettre à vos clients de gérer leur abonnement sur le portail

Si vous ne souhaitez pas coder une intégration, vous pouvez configurer des abonnements de base manuellement dans le Dashboard ou utiliser Payment Links pour configurer des abonnements sans avoir à rédiger une seule ligne de code.

Consultez notre documentation consacrée à la conception d’une intégration pour mieux comprendre les décisions et les ressources inhérentes à une intégration complète.

Une fois l’intégration terminée, vous pouvez l’étendre pour :

  • Afficher les taxes
  • Appliquer des réductions
  • Proposer une période d’essai gratuit aux clients
  • Ajouter d’autres moyens de paiement
  • Intégrer la page de facture hébergée
  • Utiliser le mode de configuration de Checkout
  • Configurer une facturation à la consommation, grille tarifaire et une tarification à l’utilisation
  • Gérer les calculs au prorata
  • Autoriser les clients à s’abonner à plusieurs produits
  • Intégrer les droits d’accès pour gérer l’accès aux fonctionnalités de votre produit

Configurer Stripe

Installez le client Stripe de votre choix :

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Installez la CLI Stripe (facultatif). Elle vous permet de tester vos webhooks et de créer vos produits et vos tarifs.

Command Line
homebrew
# Install Homebrew to run this command: https://brew.sh/ brew install stripe/stripe-cli/stripe # Connect the CLI to your dashboard stripe login

Pour davantage d’options d’installation, consultez la page consacrée à l’interface de ligne de commande Stripe.

Créer le modèle tarifaire
Dashboard ou CLI Stripe

Créez vos produits et leurs tarifs dans le Dashboard ou via l’interface de ligne de commande Stripe.

Cet exemple utilise un service à tarif fixe avec deux options de niveau de service différentes : Basic et Premium. Pour chaque option de niveau de service, vous devez créer un produit et un tarif récurrent. (Si vous souhaitez ajouter un paiement ponctuel, par exemple des frais d’installation, créez un troisième produit avec un tarif unique. Par souci de simplicité, cet exemple n’inclut pas de paiement ponctuels.)

Dans cet exemple, chaque produit est facturé mensuellement. Le tarif du produit de base est de 5 USD. Celui du produit premium est de 15 USD.

Accédez à la page Ajouter un produit et créez deux produits. Ajoutez un tarif pour chaque produit, avec une période de facturation mensuelle récurrente :

  • Produit Premium : service Premium avec fonctionnalités supplémentaires

    • Tarif : Tarif standard | 15 USD
  • Produit de base : service de base avec fonctionnalités minimales

    • Tarif : Tarif standard | 5 USD

Après avoir créé vos tarifs, enregistrez les ID de tarif de manière à pouvoir les utiliser dans d’autres étapes. Les ID de tarif se présentent sous la forme suivante : price_G0FvDp6vZvdwRZ.

When you’re ready, use the Copy to live mode button at the top right of the page to clone your product from a sandbox to live mode.

Si vous proposez différentes périodes d’abonnement, utilisez Checkout pour faire de l’upselling et inciter vos clients à s’abonner sur une plus longue période afin de vendre plus.

Pour les autres modèles tarifaires, consultez ces exemples de facturation.

Créer une session Checkout
Client et serveur

Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une session Checkout.

index.html
Afficher l'exemple dans son intégralité
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <!-- Note: If using PHP set the action to /create-checkout-session.php --> <input type="hidden" name="priceId" value="price_G0FvDp6vZvdwRZ" /> <button type="submit">Checkout</button> </form> </body> </html>

Sur le back-end de votre application, définissez un endpoint qui crée la session que votre front-end appellera. Vous avez besoin des valeurs suivantes :

  • L’ID du tarif de l’abonnement que souscrit votre client (votre front-end transmet cette valeur)
  • Votre success_url, une page de votre site Web sur laquelle Checkout renvoie votre client une fois son paiement réalisé.

Vous pouvez éventuellement spécifier une URL cancel_url, c’est-à-dire une page de votre site Web vers laquelle Checkout renvoie votre client s’il annule le processus de paiement. Cet appel vous permet également de configurer la date de début du cycle de facturation de votre abonnement.

Si vous avez créé un tarif ponctuel à l’étape 2, transmettez également cet ID de tarif. Après avoir créé une session Checkout, redirigez votre client vers l’URL renvoyée dans la réponse.

Remarque

Vous pouvez utiliser lookup_keys pour récupérer les tarifs plutôt que les ID de tarif. Utilisez l’application test pour en savoir plus.

server.rb
Ruby
Afficher l'exemple dans son intégralité
# 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'
# The price ID passed from the front end. # price_id = params['priceId'] price_id = '{{PRICE_ID}}' session = Stripe::Checkout::Session.create({ success_url: 'https://example.com/success.html?session_id={CHECKOUT_SESSION_ID}', cancel_url: 'https://example.com/canceled.html', mode: 'subscription', line_items: [{ # For metered billing, do not pass quantity quantity: 1, price: price_id, }], }) # Redirect to the URL returned on the session # redirect session.url, 303

Dans cet exemple, success_url est personnalisé en y ajoutant l’ID de session. Pour plus d’informations sur cette approche, consultez notre documentation sur la manière de personnaliser votre page de confirmation de paiement.

Dans votre Dashboard, activez les moyens de paiement que vous souhaitez accepter de vos clients. Checkout prend en charge plusieurs moyens de paiement.

Fournir l'accès au service et suivre les abonnements
Serveur

Une fois son inscription réalisée, votre client revient sur votre site Web à la page success_url, qui initie un webhook checkout.session.completed. À réception de cet événement checkout.session.completed, vous pouvez lui donner accès à son abonnement. Continuez à lui assurer cet accès chaque mois (si facturation mensuelle) tant que vous recevez des événements invoice.paid. Si vous recevez un événement invoice.payment_failed, signalez-le à votre client et dirigez-le vers le portail client pour qu’il mette à jour son moyen de paiement.

Pour déterminer la prochaine étape de la logique de votre système, vérifiez le type d’événement et analysez la charge utile de chaque objet Event, comme invoice.paid. Stockez les subscription.id et customer.id des objets Event dans votre base de données pour vérification.

À des fins de test, vous pouvez surveiller les événements dans le Dashboard. En mode production, configurez un endpoint de webhook et abonnez-vous aux types d’événements appropriés. Si vous ne connaissez pas votre clé STRIPE_WEBHOOK_SECRET, cliquez sur le webhook dans le Dashboard pour l’afficher.

server.rb
Ruby
Afficher l'exemple dans son intégralité
# 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'
post '/webhook' do webhook_secret =
'{{STRIPE_WEBHOOK_SECRET}}'
payload
= request.body.read if !webhook_secret.empty? # Retrieve the event by verifying the signature using the raw body and secret if webhook signing is configured. sig_header = request.env['HTTP_STRIPE_SIGNATURE'] event = nil begin event = Stripe::Webhook.construct_event( payload, sig_header, webhook_secret ) rescue JSON::ParserError => e # Invalid payload status 400 return rescue Stripe::SignatureVerificationError => e # Invalid signature puts '⚠️ Webhook signature verification failed.' status 400 return end else data = JSON.parse(payload, symbolize_names: true) event = Stripe::Event.construct_from(data) end # Get the type of webhook event sent event_type = event['type'] data = event['data'] data_object = data['object'] case event_type when 'checkout.session.completed' # Payment is successful and the subscription is created. # You should provision the subscription and save the customer ID to your database. when 'invoice.paid' # Continue to provision the subscription as payments continue to be made. # Store the status in your database and check when a user accesses your service. # This approach helps you avoid hitting rate limits. when 'invoice.payment_failed' # The payment failed or the customer does not have a valid payment method. # The subscription becomes past_due. Notify your customer and send them to the # customer portal to update their payment information. else puts "Unhandled event type: \#{event.type}" end status 200 end

Voici les types d’événement à suivre, a minima :

Nom de l’événementDescription
checkout.session.completedEnvoyé lorsqu’un client finalise la session Checkout, vous informant d’un nouvel achat.
invoice.paidEnvoyé à chaque période de facturation lorsque le paiement aboutit.
invoice.payment_failedEnvoyé à chaque période de facturation en cas de problème avec le moyen de paiement de votre client.

Pour suivre davantage d’événements, consultez notre page sur les webhooks des abonnements.

Configurer le portail client
Dashboard

Le portail client permet à vos clients de gérer directement leurs abonnements et factures existants.

Utilisez le Dashboard pour configurer le portail. Au minimum, veillez à le configurer de façon à ce que les clients puissent mettre à jour leurs moyens de paiement. Consultez la page sur l’intégration du portail client pour en savoir plus sur les autres paramètres que vous pouvez configurer.

Créer une session de portail
Serveur

Définissez un endpoint qui crée la session du portail client qui sera appelée par votre front-end. Ici, CUSTOMER_ID fait référence à l’ID client créé par une session Checkout que vous avez enregistrée lors du traitement du webhook checkout.session.completed. Vous pouvez également définir un lien de redirection par défaut vers le portail dans le Dashboard.

Transmettez une valeur return_url facultative pour la page de votre site vers laquelle rediriger votre client après qu’il a terminé la gestion de son abonnement :

server.rb
Ruby
Afficher l'exemple dans son intégralité
# 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'
# This is the URL that users are redirected to after they're done # managing their billing. return_url =
'{{DOMAIN_URL}}'
customer_id
=
'{{CUSTOMER_ID}}'
session
= Stripe::BillingPortal::Session.create({ customer: customer_id, return_url: return_url, }) # Redirect to the URL for the session # redirect session.url, 303

Rediriger les clients vers le portail client
Client

Sur votre front-end, ajoutez à la page success_url un bouton redirigeant vers le portail client :

success.html
Afficher l'exemple dans son intégralité
<html> <head> <title>Manage Billing</title> </head> <body> <form action="/customer-portal" method="POST"> <!-- Note: If using PHP set the action to /customer-portal.php --> <button type="submit">Manage Billing</button> </form> </body> </html>

Après avoir quitté le portail client, le client revient sur votre site Web à la page return_url. Continuez à surveiller les événements pour suivre l’état de son abonnement.

Si vous configurez le portail client de manière à autoriser des actions telles que l’annulation d’un abonnement, consultez la page sur l’intégration du portail client pour découvrir des événements supplémentaires à surveiller.

Tester votre intégration

Tester les moyens de paiement

Utilisez le tableau suivant pour tester différents scénarios et moyens de paiement.

Moyen de paiementScénarioMéthode de test
Prélèvement automatique BECSLe montant dû est réglé par prélèvement automatique BECS.Remplissez le formulaire à l’aide du numéro de compte 900123456 et du BSB 000-000. Le PaymentIntent confirmé passe d’abord à l’état processing, puis à l’état succeeded trois minutes plus tard.
Prélèvement automatique BECSLe paiement de votre client échoue avec un code d’erreur account_closed.Remplissez le formulaire à l’aide du numéro de compte 111111113 et du BSB 000-000.
Carte bancaireThe card payment succeeds and doesn’t require authentication.Remplissez le formulaire de paiement par carte bancaire en saisissant le numéro de carte 4242 4242 4242 4242 ainsi que la date d’expiration, le CVC et le code postal de votre choix.
Carte bancaireLe paiement par carte bancaire requiert une authentification.Remplissez le formulaire de paiement par carte bancaire en saisissant le numéro de carte 4000 0025 0000 3155 ainsi que la date d’expiration, le CVC et le code postal de votre choix.
Carte bancaireLa carte est refusée avec un code de refus de type insufficient_funds.Remplissez le formulaire de paiement par carte bancaire en saisissant le numéro 4000 0000 0000 9995 ainsi que la date d’expiration, le CVC et le code postal de votre choix…
Prélèvement automatique SEPALe montant dû est réglé par prélèvement automatique SEPA.Remplissez le formulaire à l’aide du numéro de compte AT321904300235473204. Le PaymentIntent confirmé passe d’abord à l’état processing, puis à l’état succeeded trois minutes plus tard.
Prélèvement automatique SEPAYour customer’s PaymentIntent status transitions from processing to requires_payment_method.Remplissez le formulaire à l’aide du numéro de compte AT861904300235473202.

Surveillance des événements

Configurez des webhooks pour écouter les événements de modification d’abonnement, tels que les mises à niveau et les annulations. En savoir plus sur les webhooks d’abonnement. Vous pouvez afficher les événements dans le Dashboard ou via l’interface de ligne Stripe de commande.

Pour plus d’informations sur les tests votre intégration Billing, lisez le guide.

Voir aussi

  • Proposer une période d’essai gratuit aux clients
  • Appliquer des réductions
  • Gérer les calculs au prorata
  • Intégrer les droits d’accès pour gérer l’accès aux fonctionnalités de votre produit
Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc