tbleckert / billing
LaraMill是一个Laravel包,它提供了一个强大的桥梁到Paymill,使得处理支付和订阅变得容易。
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
- paymill/paymill: 3.2.2
This package is not auto-updated.
Last update: 2024-09-24 01:51:18 UTC
README
注意:特别感谢@hostianer为新的名称!
LaraMill是一个Laravel包,它提供了一个强大的桥梁到Paymill,使得处理支付和订阅变得容易。
安装
只需将LaraMill添加到您的composer.json
"tbleckert/laramill": "1.0-beta.2"
...然后运行composer install tbleckert/laramill
。这将安装该包。您还必须将'Tbleckert\LaraMill\LaraMillServiceProvider'
添加到您的提供者数组中。
更新用户表
LaraMill保存并使用两个数据库列,这些是:subscription_id(字符串/varchar)和client_id(字符串/varchar)。这意味着您必须手动进行迁移,将这些列添加到您的用户表中。
设置模型
要使用LaraMill,您必须将您的User模型更新为如下所示
use Tbleckert\LaraMill\LaraMillInterface;
use Tbleckert\LaraMill\LaraMillTrait;
class User extends Eloquent implements LaraMillInterface {
use LaraMillTrait;
}
配置
要开始使用LaraMill,您需要发布配置文件
php artisan config:publish tbleckert/laramill
然后填写您在app/config/packages/tbleckert/laramill/config.php
中找到的新配置中的公共和私有Paymill密钥
优惠
要添加Paymill优惠/计划,打开配置文件(见上方)并按照以下方式填写offers数组
'offers' => array(
'Basic' => array(
'monthly' => 'offer_key',
'annually' => 'offer_key'
),
'Special' => array(
'daily' => 'offer_key',
'weekly' => 'offer_key'
)
)
每个优惠都有一个名称和一个包含每个支付间隔的优惠键的数组。例如,您可以使用以下代码订阅基本计划并按年支付
$user = User::find(1);
$user->subscription('Basic', 'annually')->create($token);
更多关于订阅的信息见下文。
客户
每个用户都需要在Paymill中有一个客户。我建议您在用户注册步骤中设置一个客户(即使您支持免费账户)。这样,您就可以为订阅和支付准备好用户。
创建客户
默认情况下将使用email
列作为客户电子邮件。
$user->client()->create();
要设置不同的电子邮件,您只需在create
方法中传递它即可
$user->client()->create('myemail@domain.com');
您还可以添加一个可选的描述文本
$user->client()->create('myemail@domain.com', 'Client description');
更新客户
更新客户与创建客户非常相似
$user->client()->update('myemail@domain.com', 'Client description');
删除客户
要从Paymill中删除客户,请简单使用remove
方法
$user->client()->remove();
支付
对于任何订阅或交易,客户都需要支付。要创建支付,我们需要使用Paymill桥梁。桥梁生成一个我们需要在创建支付时使用的令牌。
创建支付
有关令牌生成的信息,请参阅官方Paymill文档。然后,对于后端
$token = Input::get('paymillToken');
$user->payment($token)->create();
更新支付
没有更新支付的功能,因为这没有意义。相反,只需创建一个新的,如果需要,删除旧的。
删除支付
$user->payment(false, 'payment_id')->remove();
支付详情
支付详情可以提供有关卡类型、最后四位卡号等信息。
$user->payment(false, 'payment_id')->details();
列出所有支付
要获取为用户创建的所有支付,请使用all
方法
$user->payment()->all();
订阅
订阅通过支付将客户与优惠连接起来。Paymill会自动在给定间隔内处理支付。
创建订阅
对于订阅要正常工作,客户需要支付。您可以将支付ID传递给订阅方法,或者让LaraMill自动设置最后一个注册的支付。如果用户已经有了订阅,则创建方法将抛出异常。
$user->subscription('Basic', 'annually')->create(); // Alternative 1
$user->subscription('Basic', 'annually', 'payment_id')->create(); // Alternative 2
订阅详情
由于订阅ID已保存到数据库中,因此您不需要传递任何参数。
$user->subscription()->details();
交换订阅
要将客户转移到新的订阅计划,您可以使用交换方法。设置新的订阅(就像创建方法一样)并调用 swap
。
$user->subscription('Basic', 'monthly')->swap();
暂停订阅
暂停订阅不需要参数,您可以使用 resume
在任何时间恢复订阅。
$user->subscription()->pause();
恢复订阅
当订阅被暂停时,您可以使用此方法再次激活它。
$user->subscription()->resume();
移除订阅
移除订阅将完全从 Paymill 删除,并从数据库中移除订阅 ID。要仅取消订阅,请检查 cancel
方法。
$user->subscription()->remove();
取消订阅
当您取消订阅时,它将保留在您的数据库和 Paymill 中,但将不会激活。因此,可以在 Paymill 管理员中手动再次激活。要完全删除它,请参阅 remove
方法。
$user->subscription()->cancel();
列出所有订阅
目前,LaraMill 仅支持每个用户一个订阅,但 all
方法仍然存在
$user->subscription()->all();
交易
交易是一次性付款,可以针对已存储的付款进行。
创建交易
为了使交易生效,客户需要一个付款。您可以将付款 ID 传递给交易方法,或者让 LaraMill 自动设置最后注册的付款。
$transaction = $user->transaction('payment_id', false, 1000)->create();
交易详情
交易详情可以提供有关卡类型、最后四位卡号等信息。
$transaction = $user->transaction(false, 'transaction_id')->details();