funnydevjsc/ninepay-laravel-integrate

Laravel 包用于集成 9pay.vn

1.0.6 2024-08-29 18:17 UTC

This package is auto-updated.

Last update: 2024-09-29 18:33:55 UTC


README

免费 Laravel 包,帮助您与 9pay.vn 集成支付

使用案例

  • 使用 9pay.vn 创建支付链接
  • 解析来自 9pay.vn 的结果
  • 示例 webhook

功能

  • 从 config/ninepay.php 动态获取 9pay.vn 凭据
  • 通过简单的一行代码轻松创建支付链接

要求

  • PHP: 8.1 或更高版本
  • Laravel 9.0 或更高版本

快速入门

如果您希望将此包安装到自己的 Laravel 应用程序中,请按照以下安装步骤操作

安装

步骤 1. 如果您还没有,请安装一个 Laravel 项目

https://laravel.net.cn/docs/installation

步骤 2. 使用 composer 需求此包

composer require funnydevjsc/ninepay-laravel-integrate

步骤 3. 发布控制器文件和配置文件

php artisan vendor:publish --provider="FunnyDev\Ninepay\NinepayServiceProvider" --tag="ninepay"

如果发布文件失败,请在此包中创建相应文件,路径为 config/ninepay.phpapp\Http\Controllers\NinepayControllers.php。您还可以进一步自定义 NinepayControllers.php 文件以适应您的项目。

步骤 4. 更新发布配置文件中的各种配置设置

发布包资源后,配置文件将位于 config/ninepay.php。请联系 9pay.vn 获取这些值以填充配置文件。

步骤 5. 添加中间件保护

app/Http/Kernel.php
<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    // Other kernel properties...
    
    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $routeMiddleware = [
        // Other middlewares...
         'ninepay' => 'App\Http\Middleware\NinepayMiddleware',
    ];
}

步骤 6. 添加路由

routes/api.php
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\NinepayController;

// Other routes properties...

Route::group(['middleware' => ['ninepay']], function () {
    Route::post('/ninepay/webhook', [NinepayController::class, 'webhook']);
});

}

然后您的 IPN (Webhook) URL 将类似于 https://yourdomain.ltd/api/ninepay/webhook,您应将其提供给 9pay 的账户设置。如果您想将其提供给 routes/web.php,也可以,但请记住,9pay 将检查与预注册 URL 匹配的 referer。因此,请确保您提供正确的网站 URL。

测试

<?php

namespace App\Console\Commands;

use FunnyDev\Ninepay\NinepaySdk;
use Illuminate\Console\Command;

class NinepayTestCommand extends Command
{
    protected $signature = 'ninepay:test';

    protected $description = 'Test Ninepay SDK';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        $instance = new NinepaySdk();
        echo $instance->create_payment(
            'INV-test-01',
            10000,
            'Description-test-01',
            'https://:8000/return',
            'https://:8000/back'
        );
    }
}

反馈

Laravel Việt Nam 中尊重我们

贡献

有关详细信息,请参阅 CONTRIBUTING

安全

如果您发现任何与安全相关的问题,请发送电子邮件至 contact@funnydev.vn 或使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件