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).
User : Liez les transactions à vos utilisateurs avec un simple Trait.Vous pouvez installer le package via Composer :
composer require sefako/moneyfusion-laravel
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="Sefako\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_transactions dans votre base de données.
php artisan migrate
Une fois configuré, vous avez plusieurs façons d'utiliser le package.
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
UserC'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 Sefako\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;
Pour un contrôle total, utilisez la façade Moneyfusion directement dans votre propre logique.
use Sefako\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']);
}
use Sefako\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
}
// Pour un paiement
$status = Moneyfusion::checkPaymentStatus('token_du_paiement');
// Pour un retrait
$status = Moneyfusion::checkPayoutStatus('token_du_retrait');
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.cancelledVous 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="Sefako\Moneyfusion\MoneyfusionServiceProvider" --tag="moneyfusion-laravel-views"
Une commande Artisan est incluse pour vérifier la connectivité avec l'API de MoneyFusion.
php artisan moneyfusion:check
Pour lancer les tests du package, exécutez la commande suivante depuis la racine de votre projet Laravel :
composer test
Ce package est distribué sous la licence MIT. Voir le fichier LICENSE pour plus d'informations.
How can I help you explore Laravel packages today?