funnydevjsc / ninepay-laravel-integrate
Laravel 包用于集成 9pay.vn
1.0.6
2024-08-29 18:17 UTC
Requires
- php: ^8.1
Requires (Dev)
- illuminate/http: ^8.83
- illuminate/routing: ^8.83
- illuminate/support: ^8.0
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.php
和 app\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)。有关更多信息,请参阅 许可文件