tbleckert/billing

此包的最新版本(v1.0-beta.2)没有提供许可证信息。

LaraMill是一个Laravel包,它提供了一个强大的桥梁到Paymill,使得处理支付和订阅变得容易。

v1.0-beta.2 2015-04-18 02:11 UTC

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