ajadipaul/laravel-payment-hub

一个综合且通用的包,旨在将多个支付网关集成到您的Laravel应用程序中。此包支持多种流行的支付选项。使用Laravel Payment Hub,您可以无缝处理支付,确保开发者和用户都能获得流畅和统一的体验。该包为所有支持的网关提供了一个标准化的接口,简化了在不同支付提供商之间切换的过程,而无需显著修改您的代码库。使用Laravel Payment Hub轻松灵活地增强您Laravel应用程序的支付功能。

v1.0.0 2024-08-31 22:27 UTC

This package is auto-updated.

Last update: 2024-10-01 00:09:10 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

一个综合且通用的包,旨在将多个支付网关集成到您的Laravel应用程序中。此包支持多种流行的支付选项。使用Laravel Payment Hub,您可以无缝处理支付,确保开发者和用户都能获得流畅和统一的体验。该包为所有支持的网关提供了一个标准化的接口,简化了在不同支付提供商之间切换的过程,而无需显著修改您的代码库。使用Laravel Payment Hub轻松灵活地增强您Laravel应用程序的支付功能。

安装

您可以通过composer安装此包

composer require ajadipaul/laravel-payment-hub

用法

//  API keys to the .env file

PAYSTACK_PUBLIC_KEY=your_paystack_public_key
PAYSTACK_SECRET_KEY=your_paystack_secret_key
FLUTTERWAVE_PUBLIC_KEY=your_flutterwave_public_key
FLUTTERWAVE_SECRET_KEY=your_flutterwave_secret_key

// Publish the configuration file to your application
php artisan vendor:publish --provider="Ajadipaul\LaravelPaymentHub\LaravelPaymentHubServiceProvider"

// Application Code Usage

class PaymentController extends Controller
{
    protected $paystack;
    protected $flutterwave;

    public function __construct()
    {
        $paystackConfig = config('paymenthub.paystack');
        $flutterwaveConfig = config('paymenthub.flutterwave');

        $this->paystack = new PaystackService();
        $this->paystack->initialize($paystackConfig);

        $this->flutterwave = new FlutterwaveService();
        $this->flutterwave->initialize($flutterwaveConfig);
    }

    public function chargeWithPaystack()
    {
        $data = [
            'amount' => 5000, // Amount in Naira
            'email' => 'user@example.com',
            'callback_url' => route('payment.callback'),
        ];

        $response = $this->paystack->charge($data);

        if ($response['status'] === 'success') {
            return redirect($response['authorization_url']);
        }

        return redirect()->back()->withErrors($response['message']);
    }

    public function chargeWithFlutterwave()
    {
        $data = [
            'amount' => 5000, // Amount in Naira
            'currency' => 'NGN',
            'email' => 'user@example.com',
            'callback_url' => route('payment.callback'),
        ];

        $response = $this->flutterwave->charge($data);

        if ($response['status'] === 'success') {
            return redirect($response['link']);
        }

        return redirect()->back()->withErrors($response['message']);
    }

    public function verifyTransaction($transactionId)
    {
        $response = $this->paystack->verify($transactionId);

        if ($response['status'] === 'success') {
            // Handle successful verification, e.g., updating order status
        } else {
            // Handle verification failure
        }
    }
}

测试

composer test

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 获取详细信息。

安全性

如果您发现任何安全相关的问题,请通过电子邮件 ajadi.ololade@gmail.com 而不是使用问题跟踪器。

鸣谢

许可证

GNU AGPLv。请参阅 许可证文件 以获取更多信息。

Laravel包模板

此包是使用 Laravel包模板 生成的。