akotsepatrice / moneyfusion-laravel
Un package Laravel pour intégrer le système de paiement MoneyFusion.
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 2
Type:laravel-package
pkg:composer/akotsepatrice/moneyfusion-laravel
Requires
- php: ^8.1
- spatie/laravel-package-tools: ^1.9
This package is auto-updated.
Last update: 2026-01-10 00:19:48 UTC
README
Ce package fournit une intégration complète et rapide pour l'API de paiement MoneyFusion dans votre application Laravel. Il est conçu comme une solution plug-and-play, incluant les contrôleurs, les modèles et les vues nécessaires pour gérer les paiements (Pay-in) et les retraits (Payout).
✨ Features
- 📊 Liste des Transactions : Affichez et gérez l'historique de toutes les transactions.
- 🚀 Plug-and-Play : Publiez les contrôleurs, vues et migrations en une seule commande.
- 💳 Paiements (Pay-in) : Initiez des paiements et redirigez les utilisateurs.
- 💸 Retraits (Payout) : Demandez des transferts d'argent vers un numéro.
- 🔗 Intégration Modèle
User: Liez les transactions à vos utilisateurs avec un simple Trait. - 🔔 Webhooks Gérés : Une route et une logique de base pour traiter les notifications de MoneyFusion.
- ✅ Vérification de Statut : Interrogez l'API pour connaître l'état d'une transaction.
- 🛠️ Commande Artisan : Vérifiez la connectivité avec l'API.
💾 Installation
Vous pouvez installer le package via Composer :
composer require akotsepatrice/moneyfusion-laravel
⚙️ Configuration
-
Publier les Fichiers (Recommandé)
Cette commande unique publiera la configuration, les contrôleurs, les vues et la migration. C'est la méthode la plus simple pour démarrer.
php artisan vendor:publish --provider="Akotsepatrice\Moneyfusion\MoneyfusionServiceProvider"Pour une publication plus fine (par exemple, uniquement le fichier de configuration), consultez la section Publication des Ressources.
-
Configurer les Variables d'Environnement
Ajoutez les informations de votre compte MoneyFusion à votre fichier
.env.MONEYFUSION_API_URL="https://www.pay.moneyfusion.net" MONEYFUSION_API_KEY="votre_cle_api_secrete" MONEYFUSION_MAKE_PAYMENT_API_URL="https://www.pay.moneyfusion.net/makePayment"
-
Exécuter la Migration
Cette commande créera la table
moneyfusion_transactionsdans votre base de données.php artisan migrate
🚀 Utilisation
Une fois configuré, vous avez plusieurs façons d'utiliser le package.
Option 1 : La Voie Plug-and-Play (Après publication)
Si vous avez publié les fichiers à l'étape de configuration, des routes sont déjà prêtes. Assurez-vous que vos utilisateurs sont authentifiés, puis dirigez-les vers :
-
Faire un paiement :
/payment -
Faire un retrait :
/payout -
Voir les transactions :
/transactions
Option 2 : Intégration au Modèle User
C'est la méthode la plus élégante pour lier les transactions à vos utilisateurs.
-
Ajoutez le Trait à votre modèle
User.// app/Models/User.php namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; use Akotsepatrice\Moneyfusion\Concerns\HasMoneyfusionTransactions; class User extends Authenticatable { use HasMoneyfusionTransactions; // ... }
-
Accédez aux transactions directement depuis une instance de l'utilisateur.
$user = User::find(1); // Obtenir toutes les transactions $allTransactions = $user->moneyfusionTransactions; // Obtenir uniquement les paiements (pay-ins) $payments = $user->moneyfusionPayments; // Obtenir uniquement les retraits (payouts) $payouts = $user->moneyfusionPayouts;
Option 3 : Utilisation de la Façade (Avancé)
Pour un contrôle total, utilisez la façade Moneyfusion directement dans votre propre logique.
Initier un Paiement (Pay-in)
use Akotsepatrice\Moneyfusion\Facades\Moneyfusion; $paymentData = [ 'totalPrice' => 200, 'numeroSend' => "01010101", 'nomclient' => "John Doe", 'return_url' => route('votre.route.callback'), 'webhook_url' => route('moneyfusion.webhook'), // Le package enregistre cette route pour vous ]; $response = Moneyfusion::makePayment($paymentData); if ($response && $response['statut'] === true) { // Associez la transaction à l'utilisateur si nécessaire auth()->user()->moneyfusionTransactions()->create([/* ... */]); return redirect()->away($response['url']); }
Demander un Retrait (Payout)
use Akotsepatrice\Moneyfusion\Facades\Moneyfusion; $payoutData = [ 'montant' => 5000, 'numero' => '01020304', 'moyen' => 'orange', // 'orange', 'mtn', 'moov' 'webhook_url' => route('moneyfusion.webhook'), ]; $response = Moneyfusion::requestPayout($payoutData); if ($response && $response['statut'] === true) { // La demande de retrait a été acceptée }
Vérifier le Statut
// Pour un paiement $status = Moneyfusion::checkPaymentStatus('token_du_paiement'); // Pour un retrait $status = Moneyfusion::checkPayoutStatus('token_du_retrait');
🔔 Webhooks
Le package enregistre automatiquement une route (/webhook) et une logique pour traiter les notifications de MoneyFusion.
Lorsque vous publiez les fichiers du package, un modèle MoneyfusionTransaction est créé. Le webhook mettra à jour le statut de la transaction correspondante dans votre base de données.
Les événements suivants sont gérés :
payin.session.completedpayin.session.cancelledpayout.session.completedpayout.session.cancelled
📦 Publication des Ressources (Détaillée)
Vous pouvez choisir de ne publier que certaines parties du package en utilisant les tags suivants :
--tag="moneyfusion-laravel-config"--tag="moneyfusion-laravel-controllers"--tag="moneyfusion-laravel-views"--tag="moneyfusion-laravel-migrations"
Exemple :
php artisan vendor:publish --provider="Akotsepatrice\Moneyfusion\MoneyfusionServiceProvider" --tag="moneyfusion-laravel-views"
🛠️ Commande Artisan
Une commande Artisan est incluse pour vérifier la connectivité avec l'API de MoneyFusion.
php artisan moneyfusion:check
🧪 Tests
Pour lancer les tests du package, exécutez la commande suivante depuis la racine de votre projet Laravel :
composer test
📜 Licence
Ce package est distribué sous la licence MIT. Voir le fichier LICENSE pour plus d'informations.