baidouabdellah/cmi-payment-gateway

CMI Payment Gateway for Laravel

1.0.2 2024-09-24 11:33 UTC

This package is auto-updated.

Last update: 2024-10-01 01:03:41 UTC


README

CMI-Payment-Gateway

CMI Payment Gateway for Laravel

Latest Version License

CMI-Payment-Gateway是一个简单的安全包,用于将CMI(Centre Monétique Interbancaire)支付网关集成到Laravel应用程序中。它允许您通过与CMI API交互以无缝的方式处理支付。

功能

  • 无缝集成Laravel
  • 易于配置和使用
  • 通过CMI安全处理支付
  • 支持多个SHOP(SAAS)交易
  • 可自定义支付回调URL

要求

  • PHP 7.4或更高版本
  • Laravel 7.x或更高版本
  • CMI商户账户

安装

要安装此包,请使用Composer

composer require baidouabdellah/cmi-payment-gateway

发布配置

安装完成后,使用以下命令发布配置文件

php artisan vendor:publish --tag="cmi-config"

这将在您的config目录中创建一个cmi.php文件,您可以在其中配置您的CMI凭证。

配置

config/cmi.php文件中,添加您的CMI商户凭证

return [
    'client_id' => env('CMI_CLIENT_ID', 'your-client-id'),
    'client_secret' => env('CMI_CLIENT_SECRET', 'your-client-secret'),
    'store_key' => env('CMI_STORE_KEY', 'your-store-key'),
    'currency' => env('CMI_CURRENCY', 'MAD'),
    'callback_url' => env('CMI_CALLBACK_URL', 'your-callback-url'),
];

您还可以将这些环境变量添加到您的.env文件中

CMI_CLIENT_ID=your-client-id
CMI_CLIENT_SECRET=your-client-secret
CMI_STORE_KEY=your-store-key
CMI_CURRENCY=MAD
CMI_CALLBACK_URL=https://your-domain.com/callback

使用方法

要处理支付,您可以使用提供的CMIPayment外观

  1. 首先,将CMIPayment服务注入到您的控制器中或使用外观。

  2. 在控制器中的示例使用

use BaidouAbdellah\CMIPaymentGateway\CMIPayment;

class PaymentController extends Controller
{
    public function makePayment(Request $request)
    {
        $payment = new CMIPayment();
        $response = $payment->process([
            'amount' => 100.00,  // The amount to charge
            'order_id' => 'ORDER12345',  // Your unique order ID
            'customer_name' => 'Abdellah baidou', // Customer details
            'customer_email' => 'baidou.abd@gmail.com', // Customer Email
        ]);

        return redirect($response->getPaymentUrl()); // Redirect user to CMI payment page
    }
}

处理支付回调

在您的web.php路由文件中,应添加一个路由来处理CMI回调

Route::post('/cmi/callback', [PaymentController::class, 'handleCallback'])->name('cmi.callback');

在您的PaymentController中处理回调

use Illuminate\Http\Request;

class PaymentController extends Controller
{
    public function handleCallback(Request $request)
    {
        // Handle the response from CMI here
        $paymentStatus = $request->input('STATUS');

        if ($paymentStatus === 'APPROVED') {
            // Payment was successful
            return view('payment.success');
        } else {
            // Payment failed
            return view('payment.failed');
        }
    }
}

测试

您可以使用CMI的沙盒凭证测试集成。确保您在cmi.php配置文件中配置了沙盒环境或为测试使用不同的.env变量。

基本测试卡号

在测试模式下不能使用信用卡信息。相反,请使用以下任何测试卡号,加上有效的未来到期日期和任何随机的CVC号码,以模拟成功的支付交易。

在测试环境中使用这些详细信息以验证CMI支付网关的成功集成。

安全

如果您发现任何安全问题,请通过电子邮件发送到baidou.abd@gmail.com,而不是使用问题跟踪器。

支持

许可证

此软件包是开源软件,根据MIT许可证许可。