在开始之前我们先理清几个概念。
Stripe是一个为个人和公司提供在线支付解决方案的工具,支持Web和移动App。
Laravel Cashier为Stripe提供了相应接口以便在Laravel中实现订购支付功能,从而避免让我们编写重复的样板化的代码,真正专注于业务逻辑处理,提高编程效率。
那么,Laravel Cashier到底是怎样的一把利器,下面让我们一一揭晓。
我们使用Composer安装Laravel Cashier依赖包,首先将如下依赖添加到composer.json
:
- "laravel/cashier": "~5.0"
然后运行composer update
。
安装完成后,注册服务提供者Laravel\Cashier\CashierServiceProvider::class
到config/app.php
。
我们还要对users
表添加相关字段,这可以通过以下命令生成迁移文件:
- php artisan cashier:table users
然后运行
- php artisan migrate
执行成功后去查看users
表,可见新增了与stripe相关的字段:
此外还需要修改User
模型类如下:
- <?php
- namespace App;
- use Illuminate\Auth\Authenticatable;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Auth\Passwords\CanResetPassword;
- use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
- use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
- use Laravel\Cashier\Billable;
- use Laravel\Cashier\Contracts\Billable as BillableContract;
- class User extends Model implements AuthenticatableContract, CanResetPasswordContract,BillableContract
- {
- use Authenticatable, CanResetPassword, Billable;
- protected $dates = ['trial_ends_at', 'subscription_ends_at'];
- ... //其他代码
- }
最后还要去config/services.php
中配置stripe
选项。
- 'stripe' => [
- 'model' => App\User::class,
- 'key' => env('STRIPE_KEY'),
- 'secret' => env('STRIPE_SECRET'),
- ],
model
不用修改,key
和secret
需要我们去Stripe官网注册一个账户,然后查看账户设置,通过https://dashboard.stripe.com/account/apikeys获取API Keys:
这里我们使用使用Test Publishable Key
作为配置文件中stripe选项的key
,Test Secret Key
作为stripe选项的secret
。当然我们需要将相应值配置到.env
中。
本节我们先讲到这里,下一节我们将重点探讨订购相关实现。