asorasoft/bill

Laravel 订阅计划计费

1.0.2 2021-12-15 15:31 UTC

This package is auto-updated.

Last update: 2024-09-15 21:16:35 UTC


README

Laravel 订阅计划计费

安装

您可以通过 composer 安装此包

composer require asorasoft/bill

config/app.php 中注册 BillServiceProvider

<?php

'providers' => [
    
    Asorasoft\Bill\BillServiceProvider::class
]

您需要发布配置文件,它将创建 bill.php 文件

php artisan vendor:publish --provider="Asorasoft\Bill\BillServiceProvider"

将计费密钥配置复制到 .env 文件中

BILL_SECRET_KEY=
BILL_API_URL=
BILL_VERIFY_SSL=

用法

创建或更新客户

public function createOrUpdateCustomer()
{
    Customer::updateOrCreate([
        'customer_id' => $customer_id,
        'name' => 'Name',
        'phone' => '019000000',
        'email' => 'customer@gmail.com'
    ]);
}

获取客户和计划

public function getCustomerAndPlans() 
{
    $get_customer_and_plans = Subscription::getCustomerAndPlans($customer_id);
    
    return json_encode($get_customer_and_plans);
}

订阅计划

public function subscribe()
{
    Subscription::subscribe($customer_id, $plan_id);
}

更改计划请求

public function changePlanRequest()
{
    $this->validate($request, [
        'from_plan_id' => 'required',
        'to_plan_id' => 'required',
        'price' => 'required',
        'duration' => 'required',
        'document' => 'required',
    ]);
    
    $response = ChangePlanRequest::create([
        ['name' => 'customer_id', 'contents' => $customer_id],
        ['name' => 'from_plan_id', 'contents' => $request->from_plan_id],
        ['name' => 'to_plan_id', 'contents' => $request->to_plan_id],
        ['name' => 'duration', 'contents' => $request->duration],
        ['name' => 'price', 'contents' => $request->price],
        [
            'name' => 'document',
            'contents' => fopen($request->document->path(), 'r'),
            'filename' => $request->document->getClientOriginalName(),
            'Mime-Type' => $request->document->getClientMimeType()
        ],
    ]);

    return json_encode($response);
}

续订计划请求

public function renewalPlanRequest()
{
    $this->validate($request, [
        'price' => 'required',
        'duration' => 'required',
        'document' => 'required',
    ]);
    
    $response = RenewalPlanRequest::create([
        ['name' => 'customer_id', 'contents' => $customer_id],
        ['name' => 'duration', 'contents' => $request->duration],
        ['name' => 'price', 'contents' => $request->price],
        [
            'name' => 'document',
            'contents' => fopen($request->document->path(), 'r'),
            'filename' => $request->document->getClientOriginalName(),
            'Mime-Type' => $request->document->getClientMimeType()
        ],
    ]);
    
    return json_encode($response);
}

获取发票列表

public function invoices()
{
    $response = Invoice::list($customer_id);

    return json_encode($response);
}

下载发票

public function download()
{
    return Invoice::download($invoice_uuid);
}

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全

如果您发现任何与安全相关的问题,请发送电子邮件至 mab@asorasoft.com 而不是使用问题跟踪器。

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件