Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
Aperçu
Billing
PrésentationÀ propos des API Billing
Abonnements
    Présentation
    Fonctionnement des abonnements
    Démarrer
    Démarrage rapide
    Planifier une intégration
    Créer une intégration
    Cas d'usage
    À propos des abonnements
    Activer le mode de facturation
    Définitions d'événements pour les abonnements
    Droits d'accès
    Factures d'abonnements
    Planifications d'abonnements
    Modèles tarifaires récurrents
    Authentification forte du client (SCA)
    Configurer des abonnements
    Configurer les méthodes de recouvrement
    Intégrez une grille tarifaire
    Définir des quantités
    Définir des cycles de facturation
    Gérer les abonnements
    Migrer des abonnements vers Stripe
    Abonnement à plusieurs articles
    Antidater des abonnements
    Définir des périodes d'essai
    Gérer les abonnements avec paiement différé
    Appliquer des bons de réduction
    Modifier des abonnements
    Gérer les modes de paiement des abonnements
      Prélèvement automatique ACH
      Amazon Pay
      Prélèvement automatique Bacs au Royaume-Uni
      Virement bancaire
      Prélèvement automatique BECS en Australie
      Cash App Pay
      PayPal
        Paypal dans Checkout
      Revolut Pay
      Cartes bancaires coréennes
      Kakao Pay
      Naver Pay
      Débit préautorisé au Canada
      Prélèvement automatique SEPA dans l'UE
      iDEAL via un prélèvement SEPA
      Bancontact via un prélèvement SEPA
    Analyses
    Gérer des abonnement sur iOS
Invoicing
Facturation à la consommation
Devis
Gestion des clients
Facturation avec d'autres produits
Recouvrement de revenus
Automatisations
Tester votre intégration
Tax
Présentation
Utiliser Stripe Tax
Gérer la conformité
Rapports
Présentation
Sélectionner un rapport
Configurer des rapports
API de rapport
Rapports sur plusieurs comptes
Comptabilisation des revenus
Données
PrésentationSchéma
Rapports personnalisés
Data Pipeline
Gestion des données
AccueilRevenusSubscriptionsManage subscription payment methods

Configurer un abonnement avec PayPal

Comment créer un abonnement et débiter votre client avec PayPal.

Suivez ce guide pour configurer un abonnement avec PayPal comme moyen de paiement.

Avant de commencer

  • To accept PayPal subscriptions on Stripe, you must enable PayPal recurring payments in the Dashboard.
  • This feature is only available to specific business locations. Review the business locations to confirm eligibility.

Créer un produit et un tarif
Dashboard

Les produits correspondent aux articles ou services que vous vendez. Les tarifs définissent le montant et la fréquence des paiements facturés pour un produit. Le tarif prend en compte la valeur du produit, la devise que vous acceptez et s’il s’agit d’un paiement ponctuel ou récurrent. Si vous n’avez que quelques produits et tarifs, créez-les et gérez-les dans le Dashboard.

Ce guide prend comme exemple un service de banque d’images qui débite ses clients d’un montant de 15 EUR pour un abonnement mensuel. Pour modéliser ceci :

  1. Go to the Products page and click Create product.
  2. Saisissez un Nom pour le produit. Vous pouvez éventuellement ajouter une Description et télécharger une image du produit.
  3. Select a Product tax code. Learn more about product tax codes.
  4. Sélectionnez Récurrent. Saisissez ensuite pour le prix et sélectionnez comme devise.
  5. Choose whether to Include tax in price. You can either use the default value from your tax settings or set the value manually. In this example, select Auto.
  6. Pour Période de facturation, sélectionnez Mensuel.
  7. Click More pricing options. Then select Flat rate as the pricing model for this example. Learn more about flat rate and other pricing models.
  8. Add an internal Price description and Lookup key to organize, query, and update specific prices in the future.
  9. Cliquez sur Suivant. Cliquez ensuite sur Ajouter un produit.

Après avoir créé le produit et le tarif, enregistrez l’ID de tarif de manière à pouvoir l’utiliser dans les étapes ultérieures. La page des tarifs affiche l’ID dont le format est similaire à ce qui suit : price_G0FvDp6vZvdwRZ.

Créer ou récupérer un objet Customer avant la configuration
Côté serveur

Pour réutiliser un moyen de paiement PayPal en vue de paiements ultérieurs, associez-le à un objet Customer.

Créez un objet Customer lorsque votre client crée un compte auprès de votre entreprise. En associant l’ID de l’objet Customer à votre propre représentation interne de ce client, vous pourrez par la suite récupérer et utiliser les informations du moyen de paiement enregistré. Si votre client n’a pas créé de compte, vous pouvez tout de même lui créer un objet Customer, puis l’associer à votre représentation interne de ce compte du client par la suite.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Créer un SetupIntent
Côté serveur

Un SetupIntent est un objet qui représente votre intention de configurer le moyen de paiement de votre client en vue de paiements futurs et qui suit les étapes de cette configuration.

Créez un SetupIntent sur votre serveur en définissant l’attribut payment_method_types sur paypal et en indiquant l’id de l’objet Customer.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/setup_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d "payment_method_types[]"=paypal \ -d "payment_method_data[type]"=paypal

Le SetupIntent contient une clé client_secret, une clé unique que vous devez transmettre à Stripe côté client afin de rediriger votre client vers PayPal pour que celui-ci autorise le mandat.

Rediriger votre client
Côté client

Lorsqu’un client tente de configurer son compte PayPal pour les prochains paiements, nous vous conseillons d’utiliser Stripe.js pour confirmer le SetupIntent. Stripe.js est notre bibliothèque JavaScript de base pour le développement de tunnels de paiement. Elle gère automatiquement les opérations complexes telles que la redirection décrite ci-dessous, et vous permet d’ajouter facilement d’autres moyens de paiement à votre intégration par la suite.

Intégrez le script Stripe.js à votre page de paiement en l’ajoutant en haut de votre fichier HTML.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Créez une instance de Stripe.js avec le code JavaScript suivant sur votre page de paiement.

// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
, {} );

Pour confirmer la configuration côté client, transmettez la clé secrète du client de l’objet SetupIntent créé à l’étape 3.

La clé secrète du client est distincte de vos clés API, qui authentifient les requêtes à l’API Stripe. Cette clé doit être utilisée avec prudence, car elle peut servir à finaliser le paiement. Elle ne doit être ni enregistrée, ni intégrée dans des URL, ni dévoilée à d’autres personne que votre client.

Confirmer la configuration PayPal

Afin de vous autoriser à utiliser son compte PayPal pour ses prochains paiements, votre client sera redirigé vers la page du contrat de facturation PayPal, où il devra donner son approbation avant d’être redirigé vers votre site Web. Utilisez stripe.confirmPayPalSetup pour gérer la redirection vers PayPal et finaliser la configuration. Ajoutez une URL return_url à cette fonction pour indiquer à Stripe vers quelle page rediriger l’utilisateur une fois que ce dernier approuve le contrat de facturation sur le site Web de PayPal.

client.js
// Redirects away from the client const {error} = await stripe.confirmPayPalSetup( '{{SETUP_INTENT_CLIENT_SECRET}}', { return_url: 'https://example.com/setup/complete', mandate_data: { customer_acceptance: { type: 'online', online: { infer_from_client: true } } }, } ); if (error) { // Inform the customer that there was an error. }

Vous trouverez l’ID du payeur du moyen de paiement et l’ID du contrat de facturation sur le mandat ainsi généré, sous la propriété payment_method_details. Vous trouverez également l’adresse e-mail et l’ID de payeur de l’acheteur dans la propriété paypal de PaymentMethod.

ChampValeur
payer_emailL’adresse e-mail du payeur sur son compte PayPal.
payer_idL’identifiant unique du compte PayPal du payeur.
billing_agreement_idL’ID de contrat de facturation PayPal (BAID). Il s’agit d’un identifiant généré par PayPal et qui représente le mandat entre l’entreprise et le client.

Surveiller les webhooks
Côté serveur

Pour confirmer la bonne autorisation d’un contrat de facturation par votre client, il est préférable d’utiliser une méthode telle que les webhooks plutôt que d’attendre que votre client se rende sur la page d’état du paiement. Lorsqu’un client autorise le contrat de facturation, le SetupIntent émet un événement webhook setup_intent.succeeded. Si un client n’autorise pas correctement le contrat de facturation, le SetupIntent émet l’événement webhook setup_intent.setup_failed et revient à l’état requires_payment_method. Si un client révoque le contrat de facturation depuis son compte PayPal, cela génère un événement mandate.updated.

Créer l'abonnement
Côté serveur

Créez un abonnement avec le tarif et le client :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/subscriptions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=cus_Gk0uVzT2M4xOKD \ -d default_payment_method=pm_1F0c9v2eZvKYlo2CJDeTrB4n \ -d "items[0][price]"=price_F52b2UdntfQsfR \ -d "expand[0]"="latest_invoice.confirmation_secret" \ -d off_session=true

Dans le cadre d’un abonnement, le client est débité automatiquement dans la mesure où son moyen de paiement par défaut est défini. Lorsqu’un paiement aboutit, son état dans le Dashboard Stripe bascule sur Actif. Le tarif que vous avez créé précédemment détermine les facturations à venir.

Gérer l'état de l'abonnement
Côté client

When the initial payment succeeds, the status of the subscription is active and no further action is needed. When payments fail, the status is changed to the Subscription status configured in your automatic collection settings. Notify the customer after a failure and charge them with a different payment method.

Mettre un abonnement à jour
Côté serveur

Lorsque vous mettez à jour un abonnement, vous devez préciser off_session=true. Dans le cas contraire, tout nouveau paiement nécessite de rediriger l’utilisateur vers PayPal pour confirmation. Par exemple, si vous souhaitez modifier la quantité d’un article inclus dans l’abonnement, vous pouvez utiliser :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/subscriptions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=cus_Gk0uVzT2M4xOKD \ -d default_payment_method=pm_1F0c9v2eZvKYlo2CJDeTrB4n \ -d "items[0][price]"=price_F52b2UdntfQsfR \ -d "items[0][quantity]"=2 \ -d off_session=true

Tester l'intégration

Testez votre intégration PayPal avec vos clés API de test en accédant à la page de redirection. Vous pouvez tester l’aboutissement du paiement en l’authentifiant sur la page de redirection. Le PaymentIntent passera alors de l’état requires_action à succeeded.

Pour tester un échec d’authentification de l’utilisateur, utilisez vos clés API de test et accédez à la page de redirection. Sur cette page, cliquez sur Échec du paiement test. Votre PaymentIntent bascule alors de l’état requires_action à requires_payment_method.

FacultatifConfigurer le cycle de facturation

FacultatifPériodes d'essai avant abonnement

FacultatifSupprimer un compte PayPal enregistré

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