Testez la connectivité Stripe
r# Debug du Système de Paiement Stripe
🔍 Diagnostic de l'Erreur
1. Version Simplifiée Implémentée
J'ai créé StripePaymentServiceImplSimple qui :
- ✅ Évite l'expiration (source d'erreurs)
- ✅ Logs détaillés pour le debug
- ✅ Gestion d'erreur améliorée
- ✅ Carte bancaire par défaut
2. Changements Apportés
Carte Bancaire par Défaut
// Dans payment_method_modal.dart
PaymentType _selectedPaymentType = PaymentType.card; // ✅ Par défaut
Version Simplifiée
// Dans commande_details_page.dart
final stripeService = StripePaymentServiceImplSimple(
stripeSecretKey: StripeConfig.secretKey,
stripePublishableKey: StripeConfig.publishableKey,
);
🧪 Test et Debug
Étape 1 : Redémarrez l'Application
flutter run
Étape 2 : Testez le Paiement
- Créez une commande avec un prix (ex: 50€)
- Passez au statut "Payée"
- La modal s'ouvre avec "Carte bancaire" sélectionné par défaut
- Cliquez sur "Créer et partager"
Étape 3 : Vérifiez les Logs
Dans la console, vous devriez voir :
Création du lien Stripe - Montant: 50.0 EUR
Description: Commande Kazalendar
Création de la session Stripe...
Paramètres de la session: {payment_method_types[0]: card, ...}
Réponse Stripe - Status: 200
Session créée avec succès: {id: cs_test_..., url: https://checkout.stripe.com/...}
Étape 4 : Si Erreur, Vérifiez
Erreur Stripe - Status: 401
Erreur Stripe - Body: {"error": {"message": "Invalid API Key"}}
🔧 Résolution des Erreurs Courantes
Erreur 401 - Invalid API Key
// Dans stripe_config.dart
static const String testSecretKey = 'sk_test_51...'; // ❌ Vérifiez cette clé
Solution :
- Allez sur dashboard.stripe.com
- Copiez la vraie clé secrète
- Remplacez dans
stripe_config.dart
Erreur 400 - Invalid Request
Causes possibles :
- Montant invalide (doit être > 0)
- Devise non supportée
- Paramètres manquants
- Paramètre non supporté (ex:
customer_name)
Solution :
- Vérifiez que le prix de la commande est défini
- Utilisez EUR comme devise
- Corrigé :
customer_nameremplacé parmetadata[client_name]
Erreur 400 - parameter_unknown (customer_name)
Erreur : Received unknown parameter: customer_name. Did you mean customer_email?
Cause : L'API Stripe Checkout Sessions ne supporte pas customer_name
Solution : ✅ Corrigé automatiquement
customer_name→metadata[client_name]customer_emailreste inchangé
Erreur 403 - Access Denied
Cause : Permissions insuffisantes sur le compte Stripe
Solution :
- Vérifiez que le compte Stripe est actif
- Vérifiez les permissions de l'API key
📱 Test Complet
1. Test de Création de Lien
// Dans la console, vous devriez voir :
Création du lien Stripe - Montant: 50.0 EUR
Description: Commande Kazalendar
Création de la session Stripe...
Paramètres de la session: {payment_method_types[0]: card, line_items[0][price_data][currency]: EUR, line_items[0][price_data][product_data][name]: Commande Kazalendar, line_items[0][price_data][unit_amount]: 5000, line_items[0][quantity]: 1, mode: payment, success_url: https://example.com/success?session_id={CHECKOUT_SESSION_ID}, cancel_url: https://example.com/cancel}
Réponse Stripe - Status: 200
Session créée avec succès: {id: cs_test_..., url: https://checkout.stripe.com/...}
URL de paiement: https://checkout.stripe.com/...
2. Test de Paiement
- Cliquez sur le lien généré
- Utilisez la carte de test :
4242 4242 4242 4242 - Date d'expiration : n'importe quelle date future
- CVC : n'importe quel code à 3 chiffres
🚨 Si l'Erreur Persiste
Vérifiez les Clés Stripe
// Dans stripe_config.dart
static const String testSecretKey = 'sk_test_51...'; // Doit commencer par sk_test_
static const String testPublishableKey = 'pk_test_51...'; // Doit commencer par pk_test_
Vérifiez la Connectivité
# Testez la connectivité Stripe
curl -u sk_test_51...: https://api.stripe.com/v1/charges
Vérifiez le Dashboard Stripe
- Allez sur dashboard.stripe.com
- Vérifiez que le compte est actif
- Regardez les logs dans "Developers" > "Logs"
📊 Logs de Debug
La nouvelle version affiche des logs détaillés :
✅ Succès :
Création du lien Stripe - Montant: 50.0 EUR
Session créée avec succès: {id: cs_test_..., url: https://checkout.stripe.com/...}
❌ Erreur :
Erreur Stripe - Status: 401
Erreur Stripe - Body: {"error": {"message": "Invalid API Key"}}
🎯 Prochaines Étapes
- Testez avec la nouvelle version
- Regardez les logs dans la console
- Partagez l'erreur exacte si elle persiste
- Vérifiez vos clés Stripe dans le dashboard
La version simplifiée devrait résoudre les problèmes d'expiration et vous donner des logs détaillés pour diagnostiquer toute erreur restante !