🔍 Diagnostic Webhook Paiement
🚨 Problème Identifié​
Votre commande ne se met pas à jour avec le statut "paid" après paiement.
🔧 Solutions à Tester​
1. Déployer le Webhook de Debug​
# Déployer le webhook avec plus de logs
supabase functions deploy stripe-webhook-debug
# Tester avec une commande
# Regarder les logs en temps réel
2. Vérifier la Configuration Stripe Dashboard​
A. Webhook Endpoint​
- URL :
https://votre-projet.supabase.co/functions/v1/stripe-webhook - Événements :
checkout.session.completed - Statut : âś… Actif
B. Vérifier les Événements Reçus​
- Allez dans Stripe Dashboard > Webhooks
- Cliquez sur votre webhook
- Regardez la section "Recent deliveries"
- Vérifiez s'il y a des erreurs (rouge)
3. Vérifier les Logs Supabase​
A. Logs de la Fonction​
- Supabase Dashboard > Functions
- Cliquez sur
stripe-webhook - Regardez les logs en temps réel
- Cherchez les erreurs
B. Logs de la Base de Données​
- Supabase Dashboard > Logs
- Filtrez par "Database"
- Regardez les requĂŞtes UPDATE sur la table
commandes
4. Tests de Diagnostic​
A. Test 1 : Vérifier les Commandes​
-- Vérifier les commandes récentes
SELECT id, status, payment_confirmed, payment_date, created_at
FROM commandes
ORDER BY created_at DESC
LIMIT 10;
B. Test 2 : Vérifier les Payment Links​
-- Vérifier les liens de paiement
SELECT id, commande_id, stripe_payment_link_id, is_active, created_at
FROM payment_links
ORDER BY created_at DESC
LIMIT 10;
C. Test 3 : Test avec Stripe CLI​
# Écouter les événements en local
stripe listen --forward-to localhost:54321/functions/v1/stripe-webhook
# Déclencher un événement de test
stripe trigger checkout.session.completed
5. Problèmes Courants et Solutions​
A. Webhook Non Configuré​
- Symptôme : Aucun événement reçu
- Solution : Configurer le webhook dans Stripe Dashboard
B. Mauvaise Signature​
- SymptĂ´me : Erreur 400 "Invalid signature"
- Solution : Vérifier
STRIPE_WEBHOOK_SECRET
C. Commande Non Trouvée​
- SymptĂ´me : "commande_id not found"
- Solution : Vérifier que
commande_idest bien dans les métadonnées
D. Erreur de Base de Données​
- SymptĂ´me : Erreur SQL dans les logs
- Solution : Vérifier les permissions RLS et la structure de la table
E. Timeout de Fonction​
- SymptĂ´me : Fonction qui timeout
- Solution : Optimiser le code ou augmenter le timeout
6. Vérifications Spécifiques Stripe Connect​
A. Métadonnées de Session​
Avec Stripe Connect, vérifiez que les métadonnées contiennent :
{
"commande_id": "uuid-de-la-commande",
"platform": "kazacalendar",
"commission_rate": "4%",
"vendeur_id": "id-du-vendeur"
}
B. Application Fee​
Vérifiez que l'application fee est bien appliquée :
{
"application_fee_amount": 400, // 4€ en centimes
"transfer_data": {
"destination": "acct_xxx" // Compte vendeur
}
}
7. Script de Test Complet​
// Utilisez debug_webhook_paiement.dart
dart debug_webhook_paiement.dart
8. Étapes de Résolution​
Étape 1 : Vérifier les Logs​
- Déployer
stripe-webhook-debug - Effectuer un paiement de test
- Regarder les logs en temps réel
Étape 2 : Identifier le Problème​
- Webhook reçu ? ✅/❌
- Signature valide ? ✅/❌
- Commande trouvée ? ✅/❌
- Mise à jour réussie ? ✅/❌
Étape 3 : Corriger​
- Si webhook non reçu → Configurer Stripe Dashboard
- Si signature invalide → Vérifier le secret
- Si commande non trouvée → Vérifier les métadonnées
- Si mise à jour échoue → Vérifier la base de données
9. Monitoring Continu​
A. Alertes à Configurer​
- Webhook en erreur
- Commandes non mises Ă jour
- Timeout de fonction
B. Métriques à Surveiller​
- Nombre d'événements reçus
- Taux de succès des mises à jour
- Temps de traitement
🎯 Résultat Attendu​
Après correction, vous devriez voir :
- ✅ Webhook reçu dans Stripe Dashboard
- ✅ Logs détaillés dans Supabase
- âś… Commande mise Ă jour avec
status: 'paid' - âś…
payment_confirmed: true - âś…
payment_daterempli
🚀 Prochaines Étapes​
- Déployer le webhook de debug
- Tester avec une commande
- Analyser les logs
- Corriger le problème identifié
- Vérifier que ça fonctionne
Le problème sera résolu ! 🎉