tbleckert / laramill
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-28 17:49:12 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(字符串/可变字符)和client_id(字符串/可变字符)。这意味着您必须手动制作一个迁移,将这两个列添加到您的用户表中。
设置模型
要使用 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
然后填写您新配置文件中的公共和私有 Paymill 密钥,位于 app/config/packages/tbleckert/laramill/config.php
产品
要添加 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 自动设置最后注册的付款。如果用户已经有订阅,则 create 方法将抛出异常。
$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只支持每个用户1个订阅,但all
方法仍然存在。
$user->subscription()->all();
交易
交易是一次性付款,可以针对已存储的付款进行。
创建交易
为了让交易正常工作,客户需要一个付款。您可以将付款ID传递给交易方法,或者让LaraMill自动设置最后注册的付款。
$transaction = $user->transaction('payment_id', false, 1000)->create();
交易详情
交易的详情可以提供有关卡类型、最后四位卡号等信息。
$transaction = $user->transaction(false, 'transaction_id')->details();