- Add authentication with NextAuth v5 (credentials + email verification) - Implement dashboard with glycemia tracking and AI analysis - Add PDF report generation for Premium users - Implement Stripe integration for Premium subscriptions - Add responsive UI with Tailwind CSS and shadcn components - Database schema with Prisma ORM and PostgreSQL support - Real-time glycemia visualization with Recharts - Mobile-optimized entry form - User profile management with medical information - Subscription lifecycle management (create, cancel, webhook) - Email notifications with Resend - Feature gates for Free vs Premium plans Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
Guide de test - Intégration Stripe
🧪 Tester le flux de paiement complet
Étape 1 : S'inscrire et se connecter
- Accédez à http://localhost:3000/auth/register
- Créez un compte (ex:
test@example.com) - Vérifiez l'email (récupérez le lien du serveur logs)
- Connectez-vous
Étape 2 : Accédez à la page pricing
- Allez à http://localhost:3000/pricing
- Vous devriez voir :
- Le plan FREE avec le bouton "Commencer"
- Le plan PREMIUM avec le bouton "Passer à Premium"
Étape 3 : Initiez un paiement
- Cliquez sur "Passer à Premium"
- Vous serez redirigé vers Stripe Checkout
- Utilisez les cartes de test Stripe :
Paiements réussis :
- Numéro :
4242 4242 4242 4242 - Expiration : Futur (ex: 12/25)
- CVC : N'importe quel 3 chiffres
- Nom : N'importe quel nom
Paiement échoué :
- Numéro :
4000 0000 0000 0002 - Même autres détails
Besoin d'authentification 3D Secure :
- Numéro :
4000 0025 0000 3155
Étape 4 : Vérifiez les webhooks
Après un paiement réussi, le webhook Stripe devrait :
- ✅ Créer un
Subscriptionen base de données - ✅ Mettre à jour
User.plan = "PREMIUM" - ✅ Rediriger vers
/dashboard?checkout=success
Vérifiez en :
- Ouvrant DevTools → Console
- Cherchant les logs du serveur pour
[webhook]messages - Accédant à
/dashboard/profilet vérifiant que le badge "Premium" apparaît
Étape 5 : Testez les fonctionnalités PREMIUM
Après l'upgrade :
- ✅ Le ChatBot devrait être visible en bas à droite
- ✅ Les stats 30/90 jours devraient être accessibles
- ✅ L'analyse IA quotidienne devrait fonctionner
🔧 Debugging
Vérifier les variables d'environnement
grep STRIPE .env.local
Vérifier les logs du serveur
Cherchez :
[create-checkout]: Logs de création de session[webhook]: Logs de webhooks Stripe
Simuler des webhooks en local
Pour tester les webhooks sans vraiment payer, télécharge Stripe CLI :
# Windows : Télécharge depuis https://stripe.com/docs/stripe-cli
# macOS : brew install stripe/stripe-cli/stripe
# Linux : Voir https://stripe.com/docs/stripe-cli
# Se connecter avec ton compte Stripe
stripe login
# Rediriger les webhooks à ton serveur local
stripe listen --forward-to localhost:3000/api/stripe/webhook
# Dans un autre terminal, simuler un paiement
stripe trigger customer.subscription.created
Vérifier la base de données
sqlite3 prisma/dev.db
.tables
SELECT * FROM "Subscription" LIMIT 1;
SELECT plan FROM "User" WHERE email = 'test@example.com';
🐛 Problèmes courants
Le bouton "Passer à Premium" ne fait rien
- Vérifiez que
NEXT_PUBLIC_STRIPE_KEYest correct (commence parpk_) - Vérifiez les erreurs dans DevTools → Console
Stripe Checkout ne se charge pas
- Vérifiez que la clé publique est valide
- Vérifiez que la
STRIPE_PRICE_IDexiste dans votre compte Stripe
Le webhook ne met pas à jour le plan
- Vérifiez que
STRIPE_WEBHOOK_SECRETest correct - Vérifiez les logs serveur pour les erreurs de signature
L'utilisateur reste FREE après paiement
- Vérifiez que le webhook a été traité (cherchez
[webhook]dans les logs) - Vérifiez que l'utilisateur a un
userIdcorrect - Vérifiez les logs de base de données
📊 État après un paiement réussi
La base de données devrait contenir :
User:
id: "cuid-123"
plan: "PREMIUM"
stripeId: "cus_abc123"
Subscription:
id: "sub-123"
userId: "cuid-123"
stripeId: "sub_abc123"
status: "active"
currentPeriodEnd: 2026-05-26 (30 jours à partir d'aujourd'hui)
🚀 Prochaines étapes
- Ajouter une page de confirmation de paiement
- Envoyer un email de bienvenue Premium
- Afficher l'historique des factures
- Permettre l'annulation d'abonnement
- Tester en production avec les clés Live