napp / fenerum-api-client
Fenerum API 客户端
1.1.2
2020-03-06 14:35 UTC
Requires
- php: ^7.2
- ext-json: *
- guzzlehttp/guzzle: ^6.4
- illuminate/events: ~5.8.0|^6.0|^7.0
- illuminate/queue: ~5.8.0|^6.0|^7.0
- illuminate/routing: ~5.8.0|^6.0|^7.0
- illuminate/support: ~5.8.0|^6.0|^7.0
Requires (Dev)
- laravel/framework: ~5.8.0|^6.0|^7.0
- nunomaduro/phpinsights: ^1.9
- orchestra/testbench: ^4.3
- phpunit/phpunit: ^8.2
- symfony/var-dumper: ^4.3
This package is auto-updated.
Last update: 2024-09-07 01:34:40 UTC
README
安装
您可以通过 composer 安装此包
composer require napp/fenerum-api-client
安装
- 添加到
.env
- Fenerum API 令牌和用户/密码组合以允许 Fenerum 发布 webhook 事件。
FENERUM_API_TOKEN= FENERUM_AUTH_USERNAME=myuser FENERUM_AUTH_PASSWORD=mypass
- 将 FenerumServiceProvider 添加到 config/app.php
[ ... \Fenerum\FenerumServiceProvider::class, ... ]
- 添加路由以接收 webhook
Route::post('my-webhook-url', '\Fenerum\Webhooks\Http\Controllers\WebhookController@handle');
- 在 app/Providers/EventServiceProvider 中注册事件
AccountCreated::class => [ MyAccountCreatedListener::class ], AccountUpdated::class => [ MyAccountUpdatedListener::class ], CancelSubscription::class => [ MyCancelSubscriptionListener::class ],
支持的 webhook 事件
- AccountCreated
- AccountUpdated
- CancelSubscription
- NewActivity
- NewInvoice
- PaidInvoice
- PlanTermsCreated
- PlanTermsUpdated
- RenewSubscriptionSoon
使用说明
// use DI to resolve dependencies $accounts = app(\Fenerum\ApiService::class)->account(); // or without DI $client = new \Fenerum\ApiClient(); $fenerum = new \Fenerum\ApiService($client); $accounts = $fenerum->account();
示例
获取账户
use Fenerum\ApiService; $accounts = app(ApiService::class)->account()->listAccounts();
更新订阅 - 用户座位
// find account with id "1234" $myAccount = $fenerum->account()->getAccount('1234'); // get the first subscription $subId = $myAccount['subscription_set'][0]['uuid']; // update subscription user seat count $updatedSubscription = $fenerum->subscription()->updateSubscription([ 'quantity' => 59 ], $subId);
创建账户并添加订阅(简单版本)
/** @var \Fenerum\ApiService $fenerum */ $fenerum = app(\Fenerum\ApiService::class); $localAccountCode = '12345678'; $planTermId = 'c82a888e-2149-4b3c-8e14-ff5086e49417'; // create an account $fenerum->account()->createAccount([ 'company_name' => 'Foo Bar Inc', 'code' => $localAccountCode, 'legal_address' => 'Road 123', 'legal_zipcode' => '90210', 'legal_city' => 'Hollywood', 'legal_country' => 'US', 'billing_same_as_legal' => true, 'language' => 'en', 'legal_vat_number' => 'US22223344', ]); // add subscription to the account $result = $fenerum->subscription()->createSubscription([ 'account' => $localAccountCode, 'terms' => $planTermId, 'collection_method' => 'invoice', 'start_date' => now()->endOfMonth()->toIso8601String(), 'payment_terms' => 14 ]);
创建账户并添加收件人、合同、折扣和订阅(高级版本)
/** @var \Fenerum\ApiService $fenerum */ $fenerum = app(\Fenerum\ApiService::class); $localAccountCode = '12345678'; $planTermId = 'c82a888e-2149-4b3c-8e14-ff5086e49417'; // create an account $account = $fenerum->account()->createAccount([ 'company_name' => 'Foo Bar Inc', 'code' => $localAccountCode, 'legal_address' => 'Road 123', 'legal_zipcode' => '90210', 'legal_city' => 'Hollywood', 'legal_country' => 'US', 'billing_same_as_legal' => true, 'language' => 'en', 'legal_vat_number' => 'US22223344', ]); // create a recipient $fenerum->recipient()->createRecipient([ 'account' => $account['uuid'], 'name' => 'John Doe', 'email' => 'john@doe.com', 'receive_invoice' => true, 'receive_payment_confirmation' => true, 'receive_subscription_notifications' => true, ]); // assign a 24 month contract to the account $contract = $fenerum->contract()->createContract([ 'plan_terms' => $planTermId, 'start_date' => now()->startOfDay()->toIso8601String(), 'commitment_length' => 24 ], $localAccountCode); // add 10% discounting $fenerum->contractTier()->createContractTier([ 'minimum_quantity' => 1, 'discount' => '10', 'discount_type' => 'percent', ], $localAccountCode, $contract['uuid']); // add subscription to the account $result = $fenerum->subscription()->createSubscription([ 'account' => $localAccountCode, 'terms' => $planTermId, 'collection_method' => 'invoice', 'start_date' => now()->endOfMonth()->toIso8601String(), 'payment_terms' => 14 ]);
下载发票
$invoice = app(\Fenerum\ApiService::class) ->invoice() ->getInvoice('24260f57-f190-4cfa-a2a0-d8a8d827bda8'); $filePath = public_path('invoice_'.$invoice['invoice_number'].'.pdf'); file_put_contents($filePath, base64_decode($invoice['pdf_base64'])); return response()->download($filePath)->deleteFileAfterSend(true);
变更日志
请参阅 CHANGELOG 了解最近的变化信息。
鸣谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。