netbums/laravel-subscription-preset

这是通过 Stripe 实现的 Laravel 订阅预设

v0.1.0 2022-07-09 15:06 UTC

README

Total Downloads Total Downloads Latest Stable Version Latest Stable Version

关于

这是一个 Laravel 预设包,可以帮助您快速使用 Stripe 和 Laravel Cashier 实现订阅功能。

它包含了一系列有观点的依赖/要求,例如 Laravel Livewire、Laravel Cashier、PestPHP。它还会设置 Vite,以便在 .blade.php 文件更改时自动重新加载。

如果这个包对您有所帮助,请考虑 ☕ 购买一杯咖啡

注意

此包旨在用于 Laravel 的全新安装。请不要在现有的 Laravel 上使用,因为它将覆盖一些文件。

安装

您可以通过 composer 安装此包

composer require netbums/laravel-subscription-preset

安装后,您可以通过运行以下命令来运行安装程序

复制文件

php artisan laravel-subscription-preset

这将把预设中的所有模板复制到您的 Laravel 项目中。

安装 npm 包

npm install

然后运行 npm run dev 以启动 Vite 服务器,或运行 npm run build 编译生产环境资产。

配置 .env 文件

接下来,您应该将以下内容复制到您的 .env 文件中,并使用您自己的数据设置 Stripe 变量

CASHIER_MODEL=App\Models\User
STRIPE_KEY=pk_test_XXXXXXXXXXXXXX
STRIPE_SECRET=sk_test_XXXXXXXXXXXXXXXXXX
STRIPE_WEBHOOK_SECRET=whsec_XXXXXXXXXXXXXXXXXXXXX
CASHIER_PAYMENT_NOTIFICATION=Laravel\Cashier\Notifications\ConfirmPayment

在您的 Stripe 控制台 获取 Stripe 密钥的值

配置计划生成器

database\seeders\DatabaseSeeder.php 中,您应该设置您的计划。

use App\Models\Plan;

Plan::query()->create([
    'title' => 'Pro - $99 / month',
    'slug' => 'monthly',
    'stripe_id' => 'price_XXXXXXXXXXXXX'
]);
Plan::query()->create([
    'title' => 'Pro - $999 / year',
    'slug' => 'yearly',
    'stripe_id' => 'price_XXXXXXXXXXXXX'
]);

使用方法

使用中间件

subscribednot.subscribed

Blade 指令

@if(auth()->user()->subscribed())

@can 指令

存在两个策略。您可以在 \App\Policies\SubscriptionPolicy.php 中添加自己的自定义策略。

@can('cancel', auth()->user()->subscription())
@can('resume', auth()->user()->subscription())

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近的变化信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

致谢

此预设中包含的 Tall Stack 由以下人员创建:

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。