Guide de Test - Intégration CinetPay
📋 Prérequis
Avant de tester l'intégration CinetPay, vous devez :
Obtenir vos identifiants CinetPay :
- Créer un compte sur CinetPay
- Récupérer votre
APIKEY et SITE_ID depuis votre tableau de bord
- Utiliser les identifiants de test pour l'environnement de développement
Configurer les variables d'environnement :
# Dans app_transport_front/.env
VITE_CINETPAY_APIKEY=votre_apikey_de_test
VITE_CINETPAY_SITE_ID=votre_site_id_de_test
🚀 Architecture Implémentée
Frontend
- Service CinetPay :
src/services/CinetPayService.ts
- Types TypeScript :
src/types/cinetpay.ts
- Composant de réservation :
src/components/ReservationWorkflowModal.vue
- Page de succès :
src/views/PaymentSuccessView.vue
Backend
- Webhook CinetPay :
src/presentation/controllers/payment.controller.ts
- Endpoint :
POST /api/payments/cinetpay/webhook
🧪 Comment Tester
1. Test en Mode Développement (Simulation)
Démarrer les serveurs :
# Frontend
cd app_transport_front
npm run dev
# Backend
cd node_app
npm run start:dev
Accéder à l'application :
Processus de test :
- Le système collecte les données sans créer d'entités
- Au moment du paiement, CinetPay génère une URL de paiement
- En mode DEV, le paiement est simulé automatiquement
- Les entités (utilisateur + réservations) sont créées après "paiement" réussi
2. Test avec CinetPay Réel
Configurer les vraies clés :
VITE_CINETPAY_APIKEY=votre_vraie_apikey
VITE_CINETPAY_SITE_ID=votre_vrai_site_id
Modifier le mode de test :
Dans ReservationWorkflowModal.vue, commenter la simulation :
// En production, rediriger vers l'URL de paiement CinetPay
window.location.href = result.data.payment_url
Tester le workflow complet :
- Remplir le formulaire de réservation
- Cliquer sur "Payer"
- Être redirigé vers CinetPay
- Effectuer le paiement test
- Être redirigé vers la page de succès
🔧 Configuration CinetPay selon la Documentation
Paramètres Obligatoires 0
apikey : Votre clé API CinetPay
site_id : Votre identifiant de site
transaction_id : ID unique de transaction (généré automatiquement)
amount : Montant (multiple de 5)
currency : Devise (XOF, XAF, CDF, GNF, USD)
description : Description du paiement
notify_url : URL de notification webhook
return_url : URL de retour après paiement
channels : Canaux de paiement (ALL, MOBILE_MONEY, CREDIT_CARD, WALLET)
Données Client (Obligatoires pour Cartes Bancaires) 0
customer_name : Nom du client
customer_surname : Prénom du client
customer_email : Email du client
customer_phone_number : Téléphone du client
customer_address : Adresse du client
customer_city : Ville du client
customer_country : Code pays (ex: CI, TG, SN)
customer_state : État/région
customer_zip_code : Code postal
📱 Canaux de Paiement Supportés
- ALL : Tous les canaux disponibles
- MOBILE_MONEY : Paiement mobile (Orange Money, MTN Money, etc.)
- CREDIT_CARD : Cartes bancaires
- WALLET : Portefeuilles électroniques
🔄 Workflow de Paiement Optimisé
- Collecte des données : Formulaire multi-étapes sans création d'entités
- Génération du paiement : Appel API CinetPay avec toutes les données
- Redirection : Vers l'interface de paiement CinetPay
- Notification webhook : CinetPay notifie le succès/échec
- Création des entités : Seulement après confirmation de paiement
- Redirection de retour : Vers la page de succès
🚨 Points d'Attention
Sécurité :
- Ne jamais exposer les clés API dans le code frontend
- Valider les webhooks côté serveur
- Vérifier les signatures des notifications
Gestion d'erreurs :
- Gérer les échecs de paiement
- Prévoir les timeouts
- Logger toutes les transactions
Tests :
- Utiliser les identifiants de test CinetPay
- Tester tous les canaux de paiement
- Vérifier les webhooks en local avec ngrok si nécessaire
📞 Support
- Documentation CinetPay : https://docs.cinetpay.com
- Support technique : support@cinetpay.com
- Environnement de test : Utiliser les clés de test fournies par CinetPay
✅ Checklist de Test