Stripe — Guide de Navigation
Date de création : 11 novembre 2025
Statut : En cours (PWA-first / DEV/TEST)
Propriétaire : Équipe
Dernière mise à jour : 18 décembre 2025
Bienvenue !
Vous êtes ici pour comprendre comment implémenter la gestion des abonnements Stripe de façon sécurisée et conforme légalement.
Ce guide vous explique comment naviguer dans les documents et par où commencer.
État actuel (18/12/2025) — exécution (résumé pour dev)
Ce qui est stabilisé
- La PWA de test
https://yinshi-test.yinshi.app/s'affiche correctement. - Le crash web précédent (
NoSuchMethodError: c.b is not a function) était lié au cache/service worker, pas à une régression fonctionnelle. - Un projet Firebase DEV/TEST séparé existe :
yin-shi-dev. - L'extension Stripe Invertase est installée sur
yin-shi-devet le webhook test est configuré. - Les données minimales DEV/TEST ont été seedées (script
scripts/seed-devtest.js+foods/payment_plans). - Les index Firestore nécessaires au flux consentements ont été déployés en DEV/TEST (via
firestore.indexes.json). - Un paiement Stripe (mode test) via la PWA test a été réalisé avec succès.
- Les Cloud Functions "métier" de synchro rôle Stripe →
app_userssont déployées suryin-shi-dev(ex:syncStripeToAppUser*). - Le repo gère désormais explicitement les environnements Firebase via alias
.firebaserc(dev/prod).
Notes de déploiement (DEV/TEST)
- Le déploiement Cloud Functions requiert les dépendances NPM dans
functions/(ex:npm --prefix functions ci) carfirebase.jsonexécutelint+builden predeploy. - Premier déploiement 2nd gen (Node 22) : la mise en place Eventarc/Cloud Run peut nécessiter un retry après quelques minutes (propagation des permissions).
- Un warning peut apparaître sur la cleanup policy d'Artifact Registry (impact coût faible, à traiter ensuite).
Ce qui bloque encore les tests end-to-end Stripe
- Refaire un test E2E (idéalement avec un nouvel utilisateur) et vérifier que
app_users/{uid}.app_user_rolepasse bien àPaidaprès checkout.
Faits vérifiés dans le repo (important pour reprendre le sujet)
- Les rules Firestore sont versionnées :
firestore.rulesest référencé parfirebase.json. - Les indexes Firestore sont versionnées :
firestore.indexes.jsonest référencé parfirebase.json. - Le rôle admin côté app est basé sur Firestore : champ
app_users/{uid}.app_user_role(pas de custom claims consommés par l'app).
Stratégie "2 rails" (pour avancer sans bloquer)
Rail 1 — Court terme : débloquer Stripe E2E sur DEV/TEST (sans refondre l'auth)
Objectif : réussir un paiement Stripe en mode test depuis https://yinshi-test.yinshi.app/ et observer :
- création de customers/{uid}/checkout_sessions/{sessionId}
- apparition du champ url (ajouté par l'extension)
- paiement test OK
- webhook OK (deliveries 2xx) et documents subscriptions alimentés
Actions attendues
- Définir des rules DEV/TEST minimales nécessaires au flux Stripe (sans toucher PROD).
- Corriger les URLs
success_url/cancel_urlpour DEV/TEST. - Exécuter le test E2E et valider les preuves (Stripe deliveries + documents Firestore).
Documents à suivre
- Checklist d'exécution (DEV/TEST) :
CHECKLIST_FIREBASE_DEVTEST_YINSHI.md - Plan environnements :
OPTIONS_ENVIRONNEMENTS_TEST_PROD.md
Rail 2 — Moyen terme : sécurité & industrialisation (PROD)
Objectif : sécuriser durablement les rules et éviter la dérive entre console et repo.
Décisions à prendre (avec le dev qui a implémenté l'auth)
- Modèle admin :
- Option A : custom claims (plus sûr, nécessite un mécanisme serveur)
- Option B : rôle Firestore (
app_users/{uid}.app_user_role) (actuel, nécessite des rules strictes anti auto-promotion)
Actions attendues
- Versionner les rules dans Git (ajout de
firestore.rules) et définir un mode de déploiement par environnement. - Revoir les rules PROD (et uniquement après décision A/B) et ajouter des garde-fous (notamment éviter d'utiliser
request.auth == nullcomme pseudo "server" côté client). - Stabiliser l'update PWA (cache/service worker) pour éviter les clients bloqués sur d'anciens bundles.
Structure des Documents
docs/05_chantiers_actifs/stripe/
├── README.md ← Vous êtes ici
├── AUDIT_CONFORMITE_STRIPE.md ← Analyse des risques
├── CHECKLIST_SECURITE.md ← Bonnes pratiques de sécurité
├── CHECKLIST_FIREBASE_DEVTEST_YINSHI.md ← Setup Firebase DEV/TEST (PWA-first)
├── RESSOURCES_OFFICIELLES.md ← Liens officiels
├── BACKLOG_STRIPE.md ← User stories et épiques
├── SPRINT_PLANNING.md ← Planification détaillée
├── ARCHITECTURE_STRIPE.md ← Design technique (inclut l'état actuel)
└── OPTIONS_ENVIRONNEMENTS_TEST_PROD.md ← Plan de mise en place (2 projets Firebase + PWA-first)
Décisions (ADR) :
docs/06_decisions/
└── ADR-001-environnements-firebase-stripe-pwa-first.md ← Décision : 2 projets Firebase + PWA-first
✅ Maintenant / Plus tard (environnements Stripe)
Maintenant (PWA-first)
- créer/configurer le projet Firebase DEV/TEST (Stripe en mode test)
- faire pointer le build Web/PWA de test vers DEV/TEST
- valider les parcours Stripe sur
https://yinshi-test.yinshi.app/
Plus tard
- Android : builds DEV/TEST vs PROD (tracks Play Console)
- iOS : builds DEV/TEST vs PROD + TestFlight
🎯 Par Où Commencer ?
Chemin rapide (dev) — objectif : tester Stripe sur DEV/TEST
- Lire la section "Stratégie \"2 rails\"" dans ce README.
- Exécuter le Rail 1 en suivant :
CHECKLIST_FIREBASE_DEVTEST_YINSHI.md. - Garder le Rail 2 (décision A/B + durcissement PROD + versioning rules) pour une discussion dédiée avec le dev qui a implémenté l'auth.
Étape 1 : Comprendre les Risques (30 min)
Lire : AUDIT_CONFORMITE_STRIPE.md
Sections importantes : - Section 1 : Contexte & Scope - Section 2 : Matrice de Conformité - Section 3 : Risques Identifiés - Section 4 : Recommandations Prioritaires
Objectif : Comprendre ce qu'il faut faire et pourquoi
Questions à vous poser : - ✅ Comprends-je les risques légaux ? - ✅ Comprends-je les risques de sécurité ? - ✅ Suis-je d'accord avec les priorités ?
Étape 2 : Valider avec l'Équipe (1h)
Réunion d'équipe : - Vous (PO) : Présenter l'audit - Dev 1 & 2 : Poser des questions - Ensemble : Valider l'approche
Points à discuter : - [ ] Sommes-nous d'accord avec les risques identifiés ? - [ ] Sommes-nous d'accord avec les priorités ? - [ ] Avons-nous les ressources nécessaires ? - [ ] Avons-nous des questions ?
Étape 3 : Lire les Bonnes Pratiques (2h)
Lire : CHECKLIST_SECURITE.md
Sections importantes : - Section 1 : OWASP Top 10 (survoler) - Section 2 : Stripe Security (lire en détail) - Section 3 : Firebase Security (lire en détail)
Objectif : Comprendre les bonnes pratiques de sécurité
Pour les développeurs : - [ ] Comprendre OWASP Top 10 - [ ] Comprendre Stripe Security - [ ] Comprendre Firebase Security - [ ] Savoir où trouver les ressources
Étape 4 : Accéder aux Ressources Officielles (Au besoin)
Lire : RESSOURCES_OFFICIELLES.md
Sections importantes : - Section 1 : OWASP - Section 2 : Stripe Security - Section 3 : Firebase Security - Section 4 : Conformité Légale (RGPD, CCPA, LGPD) - Section 7 : Plan de Lecture Recommandé
Objectif : Avoir accès à toutes les ressources officielles
Utilisation : - Chercher le sujet qui vous intéresse - Cliquer sur le lien officiel - Lire la documentation - Implémenter les recommandations
Étape 5 : Comprendre le Backlog (1h)
Lire : BACKLOG_STRIPE.md
Sections importantes : - Épique 1 : Documents Légaux & Consentement - Épique 2 : Validation des Webhooks Stripe - Épique 3 : Audit Trails Complets - Section 8 : Résumé des Phases
Objectif : Comprendre ce qu'il faut implémenter
Pour chaque épique, lire : - 🎯 Perspective PO : Pourquoi ? Quand ? Coûts/Bénéfices ? - 👨💻 Perspective Développeur : Comment ? Avec quoi ? Estimations ? - 👥 Perspective Client : Ça me sert à quoi ? C'est sûr ?
Étape 6 : Planifier les Sprints (1h)
Lire : SPRINT_PLANNING.md
Sections importantes : - Sprint 1 : Phase 1 - Critique - Sprint 2-3 : Phase 2 - Haute Priorité - Sprint 4-5 : Phase 3 - Moyenne Priorité
Objectif : Avoir un plan détaillé semaine par semaine
Pour chaque sprint : - [ ] Quelles sont les tâches ? - [ ] Combien de temps ça prend ? - [ ] Qui fait quoi ? - [ ] Quand on commence ?
Étape 7 : Comprendre l'Architecture (1h)
Lire : ARCHITECTURE_STRIPE.md
Sections importantes : - Architecture globale - Flux de paiement - Flux d'authentification - Sécurité
Objectif : Comprendre comment tout s'imbrique
Pour les développeurs : - [ ] Comprendre l'architecture globale - [ ] Comprendre les flux de données - [ ] Savoir où implémenter quoi
Étape 8 : Comprendre les Remboursements & Annulations (1h)
Lire : REMBOURSEMENTS_ET_ANNULATIONS.md
Sections importantes : - Section 1 : Politique de Remboursement - Section 2 : Gestion des Annulations - Section 3 : Conformité Légale - Délais d'Annulation - Section 4 : User Stories
Objectif : Comprendre les délais légaux et la politique de remboursement
Pour le PO : - [ ] Définir la politique de remboursement - [ ] Définir la politique d'annulation - [ ] Valider avec l'équipe
Pour les développeurs : - [ ] Comprendre les délais légaux - [ ] Comprendre l'implémentation Stripe - [ ] Savoir comment tester
Étape 9 : Comprendre la Gestion Avancée Stripe (1h)
Lire : GESTION_AVANCEE_STRIPE.md
Sections importantes : - Section 1 : Gestion des Litiges (Disputes) - Section 2 : Gestion des Moyens de Paiement - Section 3 : Upgrade/Downgrade d'Abonnement - Section 4 : Prévention de la Fraude (Stripe Radar)
Objectif : Comprendre les aspects avancés de Stripe
Pour le PO : - [ ] Comprendre les risques de fraude - [ ] Comprendre l'impact du churn involontaire - [ ] Planifier les priorités
Pour les développeurs : - [ ] Comprendre les webhooks avancés - [ ] Comprendre l'implémentation des SetupIntents - [ ] Comprendre la configuration de Radar
📋 Checklist de Démarrage
Pour le PO
- [ ] Lire AUDIT_CONFORMITE_STRIPE.md (30 min)
- [ ] Réunion d'équipe pour valider (1h)
- [ ] Lire BACKLOG_STRIPE.md (1h)
- [ ] Lire SPRINT_PLANNING.md (1h)
- [ ] Lire REMBOURSEMENTS_ET_ANNULATIONS.md (1h)
- [ ] Lire GESTION_AVANCEE_STRIPE.md (1h)
- [ ] Planifier les sprints avec l'équipe (1h)
Total : 6h30
Pour les Développeurs
- [ ] Lire AUDIT_CONFORMITE_STRIPE.md (30 min)
- [ ] Lire CHECKLIST_SECURITE.md (2h)
- [ ] Lire BACKLOG_STRIPE.md (1h)
- [ ] Lire ARCHITECTURE_STRIPE.md (1h)
- [ ] Lire REMBOURSEMENTS_ET_ANNULATIONS.md (1h)
- [ ] Lire GESTION_AVANCEE_STRIPE.md (1h)
- [ ] Réunion d'équipe pour questions (1h)
Total : 7h30
Pour l'Équipe
- [ ] Réunion de démarrage (1h)
- Présentation de l'audit
- Questions/réponses
- Validation de l'approche
- Planification des sprints
🎬 Scénarios de Lecture
Scénario 1 : Vous êtes PO et pressé (2h)
- Lire AUDIT_CONFORMITE_STRIPE.md - Section 4 (Recommandations)
- Lire BACKLOG_STRIPE.md - Section 8 (Résumé des Phases)
- Lire SPRINT_PLANNING.md - Sprint 1
Résultat : Vous comprenez les priorités et pouvez planifier
Scénario 2 : Vous êtes Développeur et pressé (2h)
- Lire CHECKLIST_SECURITE.md - Section 2 & 3 (Stripe & Firebase)
- Lire BACKLOG_STRIPE.md - Épique 2 (Webhooks)
- Lire ARCHITECTURE_STRIPE.md - Flux de paiement
Résultat : Vous comprenez ce qu'il faut implémenter
Scénario 3 : Vous voulez tout comprendre (6h)
- Lire tous les documents dans l'ordre
- Prendre des notes
- Poser des questions à l'équipe
Résultat : Vous êtes expert sur le sujet
🔗 Liens Rapides
Documents Principaux
- Audit :
AUDIT_CONFORMITE_STRIPE.md - Sécurité :
CHECKLIST_SECURITE.md - Ressources :
RESSOURCES_OFFICIELLES.md - Backlog :
BACKLOG_STRIPE.md - Sprints :
SPRINT_PLANNING.md - Architecture :
ARCHITECTURE_STRIPE.md
Ressources Officielles
- OWASP Top 10 : https://owasp.org/www-project-top-ten/
- Stripe Security : https://stripe.com/docs/security
- Firebase Security : https://firebase.google.com/docs/firestore/security/start
- RGPD : https://www.cnil.fr/fr/rgpd-par-ou-commencer
- App Store : https://developer.apple.com/app-store/review/guidelines/
- Play Store : https://play.google.com/about/developer-content-policy/
❓ Questions Fréquentes
Q : Par où je commence ?
R : Commencez par AUDIT_CONFORMITE_STRIPE.md pour comprendre les risques.
Q : Combien de temps ça va prendre ?
R : - Lecture : 5-6 heures - Implémentation : 4-6 semaines (5 sprints) - Total : 6-7 semaines
Q : C'est obligatoire de faire tout ça ?
R : - Phase 1 (Critique) : OUI, avant production - Phase 2 (Haute Priorité) : OUI, avant production - Phase 3 (Moyenne Priorité) : NON, avant expansion
Q : Qu'est-ce qui est le plus important ?
R : 1. Documents légaux (politique de confidentialité) 2. Validation des webhooks Stripe 3. Audit trails complets
Q : Où trouver de l'aide ?
R : - OWASP : https://owasp.org/ - Stripe Support : support@stripe.com - Firebase Support : support@firebase.google.com - CNIL (France) : https://www.cnil.fr/
📞 Contacts & Support
Interne
- PO : Julien
- Dev 1 : [Nom]
- Dev 2 : [Nom]
Externe
- Stripe : support@stripe.com
- Firebase : support@firebase.google.com
- Juriste : À chercher si besoin
✅ Checklist Finale
Avant de commencer l'implémentation :
- [ ] Tous les documents lus
- [ ] Équipe alignée
- [ ] Ressources confirmées
- [ ] Budget approuvé
- [ ] Calendrier défini
- [ ] Questions répondues
- [ ] Prêt à commencer !
🎯 Prochaines Étapes
- Aujourd'hui : Lire README.md (ce document)
- Demain : Lire AUDIT_CONFORMITE_STRIPE.md
- Jour 3 : Réunion d'équipe
- Jour 4-5 : Lire les autres documents
- Semaine 2 : Commencer Sprint 1
Document créé par Cascade - Guide de démarrage pour Yinshi