feat: Initial Diabetix application commit
- 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>
This commit is contained in:
143
TESTING_STRIPE.md
Normal file
143
TESTING_STRIPE.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user