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 et Checkout.
Une session Checkout représente les détails de l’intention d’achat de votre client. Créez une session Checkout lorsqu’un client souhaite démarrer un abonnement. Après avoir redirigé un client vers une session Checkout, Stripe affiche un formulaire de paiement qui permet au client d’effectuer son achat. Une fois le paiement finalisé, Stripe redirige le client vers votre site.
Activer les paiements récurrents PayPal
Stripe active automatiquement les paiements récurrents pour la plupart des utilisateurs lorsqu’ils activent les paiements PayPal dans le Dashboard Stripe. Cependant, en raison des politiques de PayPal et des restrictions régionales, vous devrez peut-être activer manuellement les paiements récurrents PayPal dans le Dashboard.
Configurer StripeCôté serveur
Pour commencer, vous devez créer un compte Stripe. S’inscrire.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer des produits et tarifs récurrents
Mise en garde
L’API Prices unifie la modélisation des abonnements et des achats ponctuels sur Stripe. Les intégrations qui n’utilisent pas cette API restent prises en charge, mais certaines fonctionnalités de Checkout ne sont compatibles qu’avec Prices. Pour passer à l’API Prices, consultez le guide de migration.
Pour utiliser Checkout, vous devez d’abord créer un produit et un tarif. Vous devez créer un produit pour chacune de vos marchandises ou chacun de vos niveaux de service. Un produit peut être associé à un ou plusieurs tarifs.
Par exemple, vous pouvez créer un produit logiciel qui dispose de quatre tarifs : 10 USD par mois, 100 USD par an, 9 EUR par mois et 90 EUR par an. Vous pouvez ainsi modifier et ajouter des tarifs sans modifier les informations de vos produits sous-jacents. Pour créer des produits et des tarifs, vous pouvez soit passer par l’API, soit utiliser le Dashboard Stripe.
Si votre tarif est déterminé au moment du paiement (par exemple, lorsque le client fixe le montant d’un don) ou si vous ne souhaitez pas créer de tarif prédéfini, vous pouvez créer des tarifs en série lors de la création d’une session Checkout.
Créer une session CheckoutCôté clientCôté serveur
Ajoutez à votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une session Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
Créez une session Checkout avec l’ID d’un tarif existant. Assurez-vous d’avoir défini le mode sur subscription
et d’avoir transmis au moins un tarif récurrent. Vous pouvez ajouter des tarifs ponctuels en plus des tarifs récurrents. Après avoir créé la session Checkout, redirigez votre client vers l’URL renvoyée dans la réponse.
Une fois le paiement effectué, votre client est redirigé vers success_
. Il s’agit d’une page de votre site Web indiquant au client que le paiement a réussi. Mettez l’ID de session à disposition sur votre page de confirmation de paiement en incluant la variable de modèle {CHECKOUT_
dans l’URL success_
, comme illustré ci-dessus.
Si lors d’une session Checkout, votre client clique sur votre logo sans finaliser un paiement, Checkout le redirige vers l’URL cancel_
de votre site web. Il s’agit habituellement de la page de votre site web que voit votre client avant d’être redirigé vers Checkout.
Par défaut, les sessions Checkout expirent 24 heures après leur création.
Mise en garde
Ne vous fiez pas uniquement à la redirection vers le success_
pour détecter l’initiation du paiement, sachant que :
- Des utilisateurs malveillants pourraient accéder directement au
success_
sans payer et obtenir l’accès à vos biens ou à vos services.url - Il peut arriver que le client n’aboutisse pas au
success_
à l’issue de son paiement. Il peut par exemple lui arriver de fermer l’onglet de son navigateur avant que la redirection n’intervienne.url
Confirmer que le paiement a abouti
Remarque
Lorsqu’un client s’abonne à Stripe via PayPal, il reçoit deux reçus distincts : le premier de la part de Stripe, et le second de PayPal.
Une fois que votre client a mené à bien son paiement, Stripe le redirige vers l’URL que vous avez spécifiée dans le paramètre success_
. Il s’agit en général d’une page de votre site Web qui l’informe que son paiement a abouti.
Utilisez le Dashboard, un webhook personnalisé ou un plugin tiers pour recevoir des événements après le paiement comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un workflow de livraison.
Vous pouvez utiliser des plugins comme Zapier pour automatiser la mise à jour de vos systèmes d’exécution des achats avec les informations provenant des paiements Stripe.
Voici quelques exemples d’automatisation prise en charge par les plugins :
- Mise à jour des feuilles de calcul utilisées pour le suivi de commandes suite à des paiements ayant abouti
- Mise à jour des systèmes de gestion d’inventaire suite à des paiements ayant abouti
- Déclenchement de notifications aux équipes internes du service client en utilisant des applications de messagerie ou de chat
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_
à 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_
à requires_
.
FacultatifAjouter des frais d'installation ponctuelsCôté serveur
En mode subscription
, vous pouvez transmettre des tarifs récurrents, mais également ajouter des tarifs ponctuels. Ces tarifs ne s’appliquent qu’à la première facture générée par un abonnement. Cette fonctionnalité permet d’ajouter des frais initiaux ou d’autres types de frais ponctuels à un abonnement.
FacultatifCréer des tarifs et produits en sérieCôté serveur
Lors de la création d’une session Checkout, vous pouvez transmettre des ID de tarifs existants, mais aussi définir des tarifs. Commencez par définir un Product, puis créez une session Checkout à l’aide de l’ID de produit et transmettez-le dans le paramètre price_data avec les informations unit_
, currency
, et recurring
:
Si vous avez également besoin de créer des produits en série, vous pouvez le faire à l’aide du paramètre product_data :
FacultatifClients existantsCôté serveur
Si vous avez déjà créé un objet Customer pour représenter un client, utilisez l’argument customer pour transmettre son ID lors de la création d’une session Checkout. Vous pouvez ainsi vous assurer que tous les objets créés pendant la session seront associés au bon objet Customer.
Lorsque vous transmettez un ID de client, Stripe utilise également l’adresse e-mail enregistrée dans l’objet Customer pour renseigner automatiquement le champ correspondant de la page Checkout. Si le client change son adresse e-mail sur la page Checkout, l’objet Customer sera mis à jour une fois qu’un paiement aura été traité.
FacultatifRenseigner les données automatiquementCôté serveur
Si vous avez précédemment collecté l’adresse e-mail de votre client et que vous souhaitez la renseigner automatiquement dans la session Checkout, transmettez le paramètre customer_email lors de la création de la session.
FacultatifGérer les périodes d'essaiCôté serveur
Vous pouvez utiliser trial_end ou trial_period_days sur la session Checkout pour spécifier la durée de la période d’essai. Dans cet exemple, nous utilisons trial_
pour créer une session Checkout pour un abonnement avec une période d’essai de 30 jours.
Checkout affiche les informations suivantes automatiquement pour les abonnements avec essais :
- Période d’essai
- Fréquence et montant des frais après expiration de la période d’essai
Pour obtenir plus d’informations sur les exigences de conformité, veuillez consulter le guide de facturation ou d’assistance.
FacultatifTaux de taxeCôté serveur
Pour appliquer des taxes aux abonnements, vous pouvez préciser des taux de taxe (taxe de vente, TVA, GST, etc.) dans les sessions Checkout.
- Utilisez des taux de taxe fixes lorsque vous connaissez le taux de taxe exact applicable à vos clients avant qu’ils n’engagent le processus de paiement (par exemple, si vous ne vendez qu’à des clients basés au Royaume-Uni et que vous facturez toujours une TVA de 20 %).
- Avec l’API Prices, vous pouvez utiliser des taux de taxe dynamiques lorsque vous avez besoin de davantage d’informations sur votre client (par exemple, son adresse de facturation ou de livraison) pour déterminer le taux de taxe à lui appliquer. Avec les taux de taxe dynamiques, vous créez des taux de taxe propres à chaque région : par exemple, un taux de TVA de 20 % pour vos clients basés au Royaume-Uni et de 7,25 % pour vos clients basés en Californie. Stripe tente ensuite d’apparier la localisation de vos clients à l’un de ces taux de taxe.
Vous pouvez utiliser les exportations de données de Stripe pour renseigner les rapports périodiques nécessaires dans le cadre du reversement des taxes. Veuillez consulter la page Déclaration et versement des taxes pour obtenir plus d’informations.
FacultatifAjouter des bons de réductionCôté serveur
Vous pouvez appliquer des bons de réduction aux abonnements dans une session Checkout en configurant des ristournes. Les bons de réduction priment sur tous les autres bons du client. Si vous créez un abonnement pour un client existant, tout bon de réduction associé au client est appliqué aux factures à l’abonnement.
Ajouter des codes promotionnels destinés aux clients
Vous pouvez également activer des codes promotionnels en utilisant le paramètre allow_promotion_codes dans les sessions Checkout. Lorsque allow_
est activé sur une session Checkout, vos clients voient une case de code promotionnel s’afficher. Créez vos bons de réduction et codes promotionnels via le Dashboard ou l’API afin que vos clients puissent les utiliser dans Checkout.