abel-olguin/laravel-openpay-plans

用于管理 Laravel 和 Openpay 支付平台的计划的库。

0.1.4 2024-04-02 00:44 UTC

This package is auto-updated.

Last update: 2024-10-02 02:11:26 UTC


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();

中间件会允许任何拥有 protrial 计划的用户通过

Route::middleware('plans.active')->get();

中间件会允许任何拥有活动计划的用户通过,无论是什么计划

权限

有三个权限可供使用,如下所示

use Illuminate\Support\Facades\Gate;
if (!Gate::forUser($user)->allows('has-plan', 'trial')) {
  abort(403);
}
  1. 权限会在用户没有 trial 计划时返回 403 错误
use Illuminate\Support\Facades\Gate;
if (!Gate::forUser($user)->allows('has-active-plan')) {
  abort(403);
}
  1. 权限会在用户没有活动计划时返回 403 错误
use Illuminate\Support\Facades\Gate;
if (!Gate::forUser($user)->allows('create-plan')) {
  abort(403);
}
  1. 权限会在用户无法创建计划时返回 403 错误,这通过配置确定,如果 allow_multiple_plans 键是 true,则允许用户继续订阅计划;如果是 false,则用户只能订阅一个计划,如果尝试订阅其他计划则无法成功,同样,此权限也会检查用户是否重复订阅了相同的计划。

命令

有三个可用命令

  1. 一旦您在数据库中创建了计划,就必须使用此命令
     php artisan plans:generate
  2. 要删除所有计划,可以使用此命令
    php artisan plans:delete
  3. 要取消未支付、已取消或已到期的订阅(适用于计划任务)
    php artisan plans:check

贡献

欢迎 PR :)

许可证

MIT