Configurer un abonnement par prélèvement automatique Bacs
Une session Checkout affiche les informations afférentes à l’intention d’achat de votre client. Vous créez une session lorsque votre client veut démarrer un abonnement. Après avoir redirigé votre client vers une session Checkout, Stripe affiche un formulaire de paiement afin que le client puisse finaliser son achat, puis redirige le client vers votre site.
Configurer StripeCôté serveur
Pour commencer, vous devez créer un compte Stripe. Inscrivez-vous maintenant.
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 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 pouvoir 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 € par mois, 100 € par an, 9 GBP par mois et 90 GBP 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 à l’aide de l’ID d’un tarif existant. Assurez-vous que le mode est défini sur subscription
et veillez à transmettre au moins un tarif récurrent. Vous pouvez également ajouter des tarifs ponctuels en plus des tarifs récurrents. Une fois la session Checkout créée, redirigez votre client vers l’URL renvoyée dans la réponse.
Une fois le paiement effectué, votre client est redirigé vers l’URL success_url
. Il s’agit d’une page de votre site Web indiquant au client que le paiement est réussi. Mettez l’ID de session à disposition sur votre page de confirmation de paiement en incluant la variable de modèle {CHECKOUT_SESSION_ID}
dans l’URL success_url
, 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_url
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.
Les sessions Checkout expirent 24 heures après leur création.
Depuis votre Dashboard, activez les moyens de paiement que vous souhaitez accepter de la part de vos clients. Checkout prend en charge plusieurs moyens de paiement.
Mise en garde
Ne vous fiez pas uniquement à la redirection vers le success_url
pour détecter l’initiation du paiement, sachant que :
- Des utilisateurs malveillants pourraient accéder directement au
success_url
sans payer et obtenir l’accès à vos biens ou à vos services. - Il peut arriver que le client n’aboutisse pas au
success_url
à l’issue de son paiement. Il peut par exemple lui arriver de fermer l’onglet de son navigateur avant que la redirection n’intervienne.
Confirmer le paiement
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_url
. En général, il s’agit d’une page de votre site Web qui l’informe que son paiement a abouti.
Toutefois, Bacs Direct Debit est un moyen de paiement à notification différée, ce qui signifie que les fonds ne sont pas immédiatement disponibles. Lors d’un paiement Bacs Direct Debit, la mise à disposition des fonds prend généralement three jours ouvrables. Nous vous recommandons donc de ne traiter la commande que lorsque les fonds sont disponibles sur votre compte. Une fois le paiement effectué, l’état du PaymentIntent sous-jacent passe de processing
à succeeded
.
Vous pouvez confirmer la réussite du paiement de différentes manières :
Tester l'intégration
Stripe met à votre disposition plusieurs numéros de compte bancaire de test que vous pouvez utiliser en mode test pour vous assurer que votre intégration est opérationnelle.
Code guichet | Numéro de compte | Description |
---|---|---|
10-88-00 | 00012345 | Le paiement aboutit et la facture bascule sur paid . |
10-88-00 | 90012345 | Le paiement aboutit au bout de trois minutes et la facture bascule sur paid . |
10-88-00 | 33333335 | Le paiement échoue avec un code d’échec debit_not_authorized et l’objet Invoice bascule sur open . L’objet Mandate devient inactive et le PaymentMethod ne peut plus être utilisé. |
10-88-00 | 93333335 | Le paiement échoue au bout de trois minutes avec un code d’échec debit_not_authorized et l’objet Invoice bascule sur open . L’objet Mandate devient inactive et le PaymentMethod ne peut plus être utilisé. |
10-88-00 | 22222227 | Le paiement échoue avec un code d’échec insufficient_funds et l’objet Invoice bascule sur open . L’objet Mandate reste active et le PaymentMethod peut à nouveau être utilisé. |
10-88-00 | 92222227 | Le paiement échoue au bout de trois minutes avec un code d’échec insufficient_funds et l’objet Invoice bascule sur open . L’objet Mandate reste active et le PaymentMethod peut à nouveau être utilisé. |
10-88-00 | 55555559 | Le paiement aboutit au bout de trois minutes et l’état de la facture passe à paid , mais un litige est immédiatement créé. |
10-88-00 | 00033333 | La création du moyen de paiement aboutit, mais le mandat est refusé par la banque du client et passe immédiatement à l’état inactif. |
10-88-00 | 00044444 | La demande de mise en place d’un prélèvement automatique Bacs échoue immédiatement en raison d’un numéro de compte non valide et le client est invité à mettre à jour ses informations avant de soumettre sa demande. Les données de paiement ne sont pas collectées. |
Pour vos tests, vous pouvez utiliser l’un des numéros de compte fournis ci-dessus. Cependant, dans la mesure où le traitement des paiements par prélèvement automatique Bacs prend plusieurs jours, privilégiez les numéros de compte de test qui fonctionnent avec un délai de trois minutes, de manière à mieux simuler le comportement en situation réelle.
Note
Par défaut, Stripe envoie automatiquement des e-mails de notification au client lors de la collecte initiale de ses données de paiement et chaque fois qu’un débit est ensuite effectué sur son compte. Ces notifications ne sont pas envoyées en mode test.