Guide de la démo Stripe
Cette démo simule de bout en bout le parcours de souscription Upcoop Business+ et Business+ Premium : le commerçant souscrit depuis son portail authentifié, paye via Stripe, reçoit ses emails, et nos systèmes écrivent les bonnes données dans l'ERP. Tout est en mode TEST — aucun débit réel n'a lieu.
Schéma high-level
/success.checkout.session.completed · customer.subscription.created ·
invoice.finalized · invoice.paid · invoice.payment_failed ·
customer.subscription.updated/deleted
journal.jsonl append-only) — visible dans
/erp.(b) Téléchargement local du PDF facture Stripe (
invoices/).(c) Envoi email transactionnel SMTP au commerçant.
Scénarios de test (5)
Chaque scénario s'exécute depuis la landing en quelques clics.
Les emails sont redirigés vers contact@ecobeez.fr (override demo) avec une bannière le rappelant.
Souscription Business+ classique
Premier achat, trial 90 jours offerts.
- Sidebar → choisir Le Bistrot Parisien par exemple
- Cliquer Souscrire Business+
- Carte
4242 4242 4242 4242· 12/30 · 123 · 75002
checkout.session.completed + subscription.created (trialing) + invoice 0 €.
Souscription Business+ Premium
Sans trial, paiement immédiat 79 €.
- Sidebar → choisir un commerçant
- Cliquer Souscrire Business+ Premium
- Carte
4242 4242 4242 4242
invoice.paid 7900 cents.
Renouvellement post-trial (Test Clock)
Simuler la 1ère facture 39 € après les 90 j gratuits.
- Sidebar → cocher « Mode Test Clock »
- Souscrire Business+ avec carte
4242… - Aller sur /erp → ligne Test Clock → Avancer 91 jours
- Patienter ~60 sec (Stripe replay en 2 paliers)
invoice.finalized 3900 puis invoice.paid 3900.
Échec de paiement (dunning)
Carte qui marche au 1er paiement puis décline aux suivants.
- Sidebar → cocher Test Clock
- Souscrire Business+ avec carte
4000 0000 0000 0341 - Aller sur /erp → Avancer 91 jours
invoice.payment_failed (attempt 1) avec date prochaine tentative auto Stripe.
Résiliation depuis le portail
Self-service Customer Portal Stripe.
- Sidebar → choisir un commerçant déjà abonné
- Bannière → cliquer « Gérer mon abonnement »
- Sur le portail Stripe → Cancel plan + choisir un motif
subscription.updated avec note « Résiliation programmée à la fin de période ».
(Pour voir l'email cancel completed, avancer un Test Clock après la fin de période.)
Cartes test Stripe (mode TEST)
| Numéro | Comportement | À utiliser pour |
|---|---|---|
4242 4242 4242 4242 |
Succès toujours | Tests 1, 2, 3 — souscription nominale |
4000 0000 0000 0341 |
Succès au 1er paiement, décline aux suivants | Test 4 — dunning post-trial |
4000 0000 0000 0002 |
Décline immédiatement | Échec de souscription dès le 1er paiement |
4000 0027 6000 3184 |
Demande 3DS / authentification renforcée | Tester le flow Strong Customer Authentication (PSD2) |
4000 0000 0000 9995 |
Décline pour fonds insuffisants | Variante alternative au 0341 |
Date d'expiration : n'importe quelle date future (ex 12/30). CVC : 3 chiffres au choix. Code postal : 75002.
Mécaniques techniques en arrière-plan
Webhook signé HMAC
Chaque event Stripe reçu sur /webhooks/stripe est vérifié avec
stripe.webhooks.constructEvent(rawBody, signature, whsec_…).
Body brut préservé via un Content-Type parser custom Fastify.
Idempotence Customer
1 commerçant Upcoop = 1 Customer Stripe unique. Cache local en mémoire +
customers.search par metadata.upcoop_merchant_id
comme fallback. Plus de doublons si on clique « Souscrire » plusieurs fois.
Idempotence Catalogue
Au boot, le serveur s'assure que les Products + Prices Stripe existent via
lookup_keys. Aucune duplication même si on relance 100 fois.
Test Clock multi-paliers
Stripe limite à 2 intervalles à la fois. Pour avancer 91 j sur une sub mensuelle,
on coupe en 2 paliers de 55 j avec polling du statut ready entre chaque.
SMTP transactionnel
Compte applicatif centaur-platform@ecobeez.com sur Webmo (port 587).
EMAIL_OVERRIDE_TO=contact@ecobeez.fr redirige tous les envois en démo
avec une bannière jaune de rappel.
E-invoicing FR (à venir)
Jusqu'au 31 août 2026, on émet la facture via Stripe (PDF hosted). Au 1er septembre, bridge vers Pennylane (PDP agréée DGFIP) pour émission Factur-X conforme PPF B2B France.