ptuchik/billing

Laravel 5.5支持的账单包,包括套餐、计划、优惠券、附加组件、支付和订阅


README

警告!!! 如果您已经在使用v1.x版本,请继续使用它,v2.x可能存在一些向后不兼容性...

为一切卖任何东西...

Latest Stable Version Total Downloads

Laravel 5.5+支持的账单包,包括多货币的套餐、计划、优惠券、附加组件、支付和订阅

结构

结构如下

  • Billable - 将支付所有费用的模型
  • Hostable - 可以购买所有内容的模型
  • Package - 可以购买的模型
  • Plan - 将出售Package的模型
  • Reference - 可以是任何模型,将随Package一起购买
  • Coupon - 可以应用于Plan购买的折扣

概念

概念如下:为了能够使用此包,首先需要将Billable特征添加到您的账单模型,并实现Billable接口(通常是User模型)。可托管模型必须实现Hostable接口并使用Hostable特征,这将向模型添加Purchases关系。所有包都必须从PackageModel抽象类扩展。就是这样!

备注:包提供的配置中可以覆盖一切

安装

composer require ptuchik/billing

在Composer安装后,只需像往常一样运行php artisan migrate,将额外的表添加到数据库中,并通过执行以下操作发布配置:

php artisan vendor:publish --provider="Torann\Currency\CurrencyServiceProvider" --tag=config
php artisan vendor:publish --provider="Ptuchik\Billing\Providers\BillingServiceProvider" --tag=config
php artisan vendor:publish --provider="Ptuchik\CoreUtilities\Providers\CoreUtilitiesServiceProvider" --tag=config

重要!您的账单模型必须具有以下属性

  • balance - 转换:numeric
  • paymentGateway - 转换:string
  • paymentProfiles - 转换:array
  • currency - 转换:string
  • params - 转换:array

以及isTester()方法,该方法将指示您的账单模型是测试者还是客户,以设置正确的支付网关环境模式。如果您不需要测试者,只需在您的账单模型中创建以下方法即可

public function isTester() {
    return false;
}

使用方法

要获取当前主机上当前用户的计划详情,包括试用天数计算和摘要(应用所有优惠券和可用余额折扣),只需调用

$plan->prepare($hostable); // Will return plan with all calculations applied for logged in user

要购买计划,只需调用

$plan->purchase($hostable); // It will do the rest automagically

文档

即将推出...

特别感谢