abel-olguin / laravel-openpay-plans
用于管理 Laravel 和 Openpay 支付平台的计划的库。
0.1.4
2024-04-02 00:44 UTC
Requires
- php: ^8.1
- illuminate/support: ^10.0|^11.0
- openpay/sdk: ^3.0
Requires (Dev)
- orchestra/testbench: ^8.18
- phpunit/phpunit: ^10.5
README
#Laravel Openpay 计划
Laravel Openpay 计划是一个用于管理 Openpay 订阅的 Laravel 库。
安装
composer require abel-olguin/laravel-openpay-plans
php artisan vendor:publish --provider="AbelOlguin\OpenPayPlans\PlansProvider"
php artisan migrate
这会生成所需的文件:视图、配置、翻译和迁移。
同样,您需要配置您的 .env
文件,包含以下 Openpay 数据
PLANS_OPEN_ID=TU_ID_DE_OPENPAY
PLANS_OPEN_API_KEY=TU_API_KEY_DE_OPENPAY
PLANS_OPEN_COUNTRY=TU_CODIGO_DE_CIUDAD_DE_OPENPAY #(MEXICO ES MX)
PLANS_OPEN_PRODUCTION=true #(Si es true se generaran cargos reales)
在用户模型中,您必须使用 HasPlans
trait
namespace App\Models; use AbelOlguin\OpenPayPlans\Models\Traits\HasPlans; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasPlans; }
要使用默认路由,您可以这样做
\AbelOlguin\OpenPayPlans\Routes\Plans::routes();
如果您想创建自己的路由,建议使用 \AbelOlguin\OpenPayPlans\Controllers\Traits\Subscriptions
trait
use AbelOlguin\OpenPayPlans\Controllers\Traits\Subscriptions; class SubscriptionController { use Subscriptions; ... }
中间件
此库提供两个中间件,可以使用以下方式使用
Route::middleware('plans:pro,trial')->get();
中间件会允许任何拥有 pro 或 trial 计划的用户通过
Route::middleware('plans.active')->get();
中间件会允许任何拥有活动计划的用户通过,无论是什么计划
权限
有三个权限可供使用,如下所示
use Illuminate\Support\Facades\Gate; if (!Gate::forUser($user)->allows('has-plan', 'trial')) { abort(403); }
- 权限会在用户没有 trial 计划时返回 403 错误
use Illuminate\Support\Facades\Gate; if (!Gate::forUser($user)->allows('has-active-plan')) { abort(403); }
- 权限会在用户没有活动计划时返回 403 错误
use Illuminate\Support\Facades\Gate; if (!Gate::forUser($user)->allows('create-plan')) { abort(403); }
- 权限会在用户无法创建计划时返回 403 错误,这通过配置确定,如果
allow_multiple_plans
键是true
,则允许用户继续订阅计划;如果是false
,则用户只能订阅一个计划,如果尝试订阅其他计划则无法成功,同样,此权限也会检查用户是否重复订阅了相同的计划。
命令
有三个可用命令
- 一旦您在数据库中创建了计划,就必须使用此命令
php artisan plans:generate
- 要删除所有计划,可以使用此命令
php artisan plans:delete
- 要取消未支付、已取消或已到期的订阅(适用于计划任务)
php artisan plans:check
贡献
欢迎 PR :)