Aller au contenu principal

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

  1. Créez une commande avec un prix (ex: 50€)
  2. Passez au statut "Payée"
  3. La modal s'ouvre avec "Carte bancaire" sélectionné par défaut
  4. 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 :

  1. Allez sur dashboard.stripe.com
  2. Copiez la vraie clé secrète
  3. 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_name remplacé par metadata[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_namemetadata[client_name]
  • customer_email reste 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

  1. Cliquez sur le lien généré
  2. Utilisez la carte de test : 4242 4242 4242 4242
  3. Date d'expiration : n'importe quelle date future
  4. 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

  1. Allez sur dashboard.stripe.com
  2. Vérifiez que le compte est actif
  3. 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

  1. Testez avec la nouvelle version
  2. Regardez les logs dans la console
  3. Partagez l'erreur exacte si elle persiste
  4. 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 !