Paiements — Stripe & PayPal

Présentation

Une fois le paywall activé, vous pouvez encaisser des paiements en ligne. Fatplant livre deux fournisseurs prêts à l’emploi : Stripe et PayPal.

Tout se configure dans le back-office — aucune donnée carte ne transite jamais par Fatplant.

Architecture

Les fournisseurs de paiement sont des « plugins » : chacun est un adaptateur placé derrière une interface générique commune. Stripe et PayPal sont fournis d’origine ; en ajouter un nouveau (par exemple Mollie ou Lemon Squeezy) revient à écrire une classe d’adaptateur, qui apparaît ensuite automatiquement dans l’écran de configuration.

Le webhook fait foi

Quand un lecteur paie, il est redirigé vers la page hébergée du fournisseur. C’est ensuite le webhook envoyé par le fournisseur — pas le retour du navigateur, qui est cosmétique — qui marque la transaction « payée » et débloque l’accès.

Sans webhook configuré, l’accès n’est jamais débloqué.

PayPal : la capture (le prélèvement effectif) se fait dans le webhook. Sans webhook, l’argent n’est même pas prélevé.

Clés chiffrées, test et production

Chaque fournisseur dispose de deux jeux de clés : un pour le mode test (sandbox, cartes fictives) et un pour la production (paiements réels). Un sélecteur de mode bascule de l’un à l’autre.

Les clés sont chiffrées et jamais réaffichées : après enregistrement, l’admin n’affiche qu’un indice masqué (les derniers caractères). Pour remplacer une clé, on saisit la nouvelle et on ré-enregistre.

Flux d’achat

  1. Sur le mur d’un article, un lecteur connecté clique sur « Payer avec Stripe » ou « Payer avec PayPal ».
  2. Il est redirigé vers la page hébergée du fournisseur (aucune donnée carte ne transite par Fatplant).
  3. Après paiement, il revient sur /paiement/succes (ou /paiement/annule s’il abandonne).
  4. L’accès est débloqué par le webhook, quelques secondes plus tard.

Configuration côté admin

Tout se passe dans Paramètres → « Paiement en ligne » :

  • saisir les identifiants (par mode), choisir le mode, Activer le fournisseur ;
  • le bouton Tester valide les identifiants (« Connexion OK ») — il ne teste pas la livraison du webhook.

L’écran « Transactions » liste les paiements (filtrable). Sur une transaction, deux actions :

  • Rembourser : appelle le fournisseur puis révoque l’accès accordé ;
  • Relancer : régénère un nouveau lien de paiement à transmettre au lecteur.

URLs de webhook à déclarer

À renseigner côté fournisseur :

FournisseurURL de webhook
Stripehttps://fatplant.dev/platform/api/payments/webhook/stripe
PayPalhttps://fatplant.dev/platform/api/payments/webhook/paypal

Événements à cocher

Stripe :

checkout.session.completed
checkout.session.expired
checkout.session.async_payment_failed
charge.refunded

PayPal :

CHECKOUT.ORDER.APPROVED
PAYMENT.CAPTURE.REFUNDED
PAYMENT.CAPTURE.REVERSED

Champs à saisir dans l’admin

FournisseurChamps (test et production)
StripeClé secrète (sk_…) · Secret de signature du webhook (whsec_…)
PayPalClient ID · Secret · Webhook ID

Tester un paiement

Pour un test de bout en bout avec Stripe en mode test, utilisez une carte de test :

ChampValeur
Numéro4242 4242 4242 4242
Expirationn’importe quelle date future
CVC3 chiffres au hasard

Effectuez ensuite un achat depuis le mur d’un article, puis vérifiez que la transaction passe à Payé dans l’écran « Transactions » et que l’accès est bien débloqué.

Aller plus loin

Un guide pas-à-pas plus détaillé (où récupérer chaque identifiant côté Stripe / PayPal, checklist de passage en production, dépannage) est disponible dans le dépôt, sous docs/paiement/configuration-stripe-paypal.md.

Restez a la pointe de l'edition

Recevez les dernieres nouveautes, tutoriels et bonnes pratiques dans votre boite mail.

F
Fatplant

Le CMS open-source des redactions de presse en ligne. Du chemin de fer a la publication et au paywall : journaux, magazines et plateformes editoriales, self-hosted et sans vendor lock-in.

Open Source RGPD MIT License
Pourquoi « Fatplant » ?

« Fatplant », c'est « Flat Plan » qui a un peu bougé. Le flat plan — le chemin de fer en jargon de presse — c'est le plan page à page d'un journal avant impression : le squelette de l'édition, la pré-maquette en fil de fer. C'est exactement ce que dessine notre page builder. Un CMS qui part du chemin de fer ne pouvait pas s'appeler autrement. 🌱

© 2026 Fatplant SAS. Tous droits reserves.