- 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>
144 lines
3.8 KiB
Markdown
144 lines
3.8 KiB
Markdown
# Guide de test - Intégration Stripe
|
|
|
|
## 🧪 Tester le flux de paiement complet
|
|
|
|
### Étape 1 : S'inscrire et se connecter
|
|
|
|
1. Accédez à http://localhost:3000/auth/register
|
|
2. Créez un compte (ex: `test@example.com`)
|
|
3. Vérifiez l'email (récupérez le lien du serveur logs)
|
|
4. Connectez-vous
|
|
|
|
### Étape 2 : Accédez à la page pricing
|
|
|
|
1. Allez à http://localhost:3000/pricing
|
|
2. Vous devriez voir :
|
|
- Le plan FREE avec le bouton "Commencer"
|
|
- Le plan PREMIUM avec le bouton "Passer à Premium"
|
|
|
|
### Étape 3 : Initiez un paiement
|
|
|
|
1. Cliquez sur "Passer à Premium"
|
|
2. Vous serez redirigé vers Stripe Checkout
|
|
3. 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 :
|
|
|
|
1. ✅ Créer un `Subscription` en base de données
|
|
2. ✅ Mettre à jour `User.plan = "PREMIUM"`
|
|
3. ✅ Rediriger vers `/dashboard?checkout=success`
|
|
|
|
Vérifiez en :
|
|
- Ouvrant DevTools → Console
|
|
- Cherchant les logs du serveur pour `[webhook]` messages
|
|
- Accédant à `/dashboard/profil` et vérifiant que le badge "Premium" apparaît
|
|
|
|
### Étape 5 : Testez les fonctionnalités PREMIUM
|
|
|
|
Après l'upgrade :
|
|
1. ✅ Le ChatBot devrait être visible en bas à droite
|
|
2. ✅ Les stats 30/90 jours devraient être accessibles
|
|
3. ✅ L'analyse IA quotidienne devrait fonctionner
|
|
|
|
## 🔧 Debugging
|
|
|
|
### Vérifier les variables d'environnement
|
|
|
|
```bash
|
|
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** :
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
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_KEY` est correct (commence par `pk_`)
|
|
- 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_ID` existe dans votre compte Stripe
|
|
|
|
### Le webhook ne met pas à jour le plan
|
|
- Vérifiez que `STRIPE_WEBHOOK_SECRET` est 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 `userId` correct
|
|
- 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
|