定制 geniuspay/laravel-sdk 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

geniuspay/laravel-sdk

最新稳定版本:v2.0.1

Composer 安装命令:

composer require geniuspay/laravel-sdk

包简介

Laravel SDK pour l'intégration des paiements GeniusPay (Wave, Orange Money, MTN Money, Carte)

README 文档

README

Latest Version Laravel PHP License

SDK Laravel officiel pour l'intégration des paiements GeniusPay (Wave, Orange Money, MTN Money, Carte bancaire).

🚀 Installation

composer require geniuspay/laravel-geniuspay

Installation automatique

php artisan geniuspay:install

Installation manuelle

# Publier la configuration
php artisan vendor:publish --tag=geniuspay-config

# Publier les migrations
php artisan vendor:publish --tag=geniuspay-migrations

# Exécuter les migrations
php artisan migrate

⚙️ Configuration

Ajoutez ces variables dans votre fichier .env :

GENIUSPAY_SANDBOX=true
GENIUSPAY_API_KEY=pk_sandbox_xxxxxxxxxxxx
GENIUSPAY_API_SECRET=sk_sandbox_xxxxxxxxxxxx
GENIUSPAY_WEBHOOK_SECRET=your_webhook_secret

Options de configuration

Variable Description Défaut
GENIUSPAY_SANDBOX Mode sandbox true
GENIUSPAY_API_KEY Clé API publique -
GENIUSPAY_API_SECRET Clé API secrète -
GENIUSPAY_WEBHOOK_SECRET Secret webhook -
GENIUSPAY_DEBUG Mode debug false
GENIUSPAY_CURRENCY Devise par défaut XOF

📖 Utilisation

Avec la Facade

use GeniusPay\Laravel\Facades\GeniusPay;

// Créer un paiement
$payment = GeniusPay::createPayment([
    'amount' => 5000,
    'currency' => 'XOF',
    'payment_method' => 'wave', // Optionnel
    'description' => 'Commande #123',
    'customer' => [
        'name' => 'John Doe',
        'email' => 'john@example.com',
        'phone' => '+221771234567',
    ],
    'success_url' => route('payment.success'),
    'error_url' => route('payment.error'),
    'metadata' => [
        'order_id' => 123,
    ],
]);

// Rediriger vers la page de paiement
return redirect($payment->paymentUrl);

Avec l'injection de dépendances

use GeniusPay\Laravel\GeniusPayClient;

class PaymentController extends Controller
{
    public function __construct(
        private GeniusPayClient $geniusPay
    ) {}

    public function create(Request $request)
    {
        $payment = $this->geniusPay->createPayment([
            'amount' => $request->amount,
            'customer' => [
                'email' => $request->user()->email,
            ],
        ]);

        return redirect($payment->paymentUrl);
    }
}

Récupérer un paiement

$payment = GeniusPay::getPayment('MTX-ABC123');

if ($payment->isCompleted()) {
    // Paiement réussi
}

if ($payment->isPending()) {
    // En attente
}

if ($payment->isFailed()) {
    // Échoué
}

Lister les paiements

$result = GeniusPay::listPayments([
    'status' => 'completed',
    'from' => '2025-01-01',
    'to' => '2025-12-31',
    'per_page' => 50,
]);

foreach ($result['data'] as $payment) {
    echo $payment->reference . ': ' . $payment->amount;
}

Vérifier le solde

$balance = GeniusPay::getBalance();
// ['available' => 150000, 'pending' => 25000]

🔔 Webhooks

Le package gère automatiquement les webhooks. Configurez l'URL dans votre dashboard GeniusPay :

https://votresite.com/geniuspay/webhook

Écouter les événements

// app/Providers/EventServiceProvider.php
use GeniusPay\Laravel\Events\PaymentCompleted;
use GeniusPay\Laravel\Events\PaymentFailed;

protected $listen = [
    PaymentCompleted::class => [
        \App\Listeners\HandlePaymentCompleted::class,
    ],
    PaymentFailed::class => [
        \App\Listeners\HandlePaymentFailed::class,
    ],
];

Créer un listener

// app/Listeners/HandlePaymentCompleted.php
namespace App\Listeners;

use GeniusPay\Laravel\Events\PaymentCompleted;

class HandlePaymentCompleted
{
    public function handle(PaymentCompleted $event): void
    {
        $reference = $event->getReference();
        $orderId = $event->getMetadata('order_id');
        
        // Mettre à jour votre commande
        $order = Order::find($orderId);
        $order->markAsPaid($reference);
    }
}

Événements disponibles

Événement Description
WebhookReceived Webhook reçu (tous types)
PaymentCompleted Paiement réussi
PaymentFailed Paiement échoué
PaymentCancelled Paiement annulé
PaymentPending Paiement en attente
RefundCompleted Remboursement effectué

🔗 Trait HasGeniusPayPayments

Ajoutez facilement les paiements à vos modèles :

use GeniusPay\Laravel\Traits\HasGeniusPayPayments;

class Order extends Model
{
    use HasGeniusPayPayments;
}

// Utilisation
$order = Order::find(1);

// Créer un paiement lié à la commande
$payment = $order->createGeniusPayPayment([
    'amount' => $order->total,
    'description' => "Commande #{$order->id}",
]);

// Récupérer les paiements
$order->geniusPayTransactions;
$order->completedPayments()->get();
$order->totalPaid();

🧪 Tests

Mode sandbox

En mode sandbox (GENIUSPAY_SANDBOX=true), aucune transaction réelle n'est effectuée.

Cartes de test

Numéro Résultat
4084 0841 1111 1111 Succès
4084 0841 2222 2222 Échec

Test de connexion

if (GeniusPay::testConnection()) {
    echo "Connexion OK";
}

🛠️ Commandes Artisan

# Installer le package
php artisan geniuspay:install

# Générer un secret webhook
php artisan geniuspay:webhook-secret

⚠️ Gestion des erreurs

use GeniusPay\Laravel\Exceptions\ApiException;
use GeniusPay\Laravel\Exceptions\AuthenticationException;
use GeniusPay\Laravel\Exceptions\ValidationException;

try {
    $payment = GeniusPay::createPayment($data);
} catch (AuthenticationException $e) {
    // Clés API invalides
} catch (ValidationException $e) {
    // Données invalides
    $errors = $e->getErrors();
} catch (ApiException $e) {
    // Autre erreur API
}

📚 Ressources

📄 Licence

MIT License. Voir LICENSE.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固