Files
diabetix/TESTING_STRIPE.md
jeremy bayse e7f151d14e 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>
2026-04-26 23:06:29 +02:00

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