PHP code example of cboxdk / laravel-billing-client
1. Go to this page and download the library: Download cboxdk/laravel-billing-client library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cboxdk / laravel-billing-client example snippets
use Cbox\Billing\Client\BillingClient;
use Cbox\Billing\Client\Exceptions\QuotaExceeded;
public function handle(BillingClient $billing): mixed
{
try {
$reservation = $billing->reserve('org_123', 'api.calls', 1);
} catch (QuotaExceeded) {
abort(429, 'Usage limit reached.');
}
try {
$result = $this->doTheWork();
$billing->commit($reservation, actual: 1);
return $result;
} catch (\Throwable $e) {
$billing->release($reservation);
throw $e;
}
}
$set = $billing->reserve('org_123', ['api.calls' => 1, 'compute.ms' => 250]);
$billing->commit($set, ['api.calls' => 1, 'compute.ms' => 210]);
Schedule::command('billing:report-usage')->everyMinute();
Schedule::command('billing:sweep-reservations')->everyFiveMinutes();
use Cbox\Billing\Client\Facades\BillingManager;
$plans = BillingManager::plans();
$preview = BillingManager::previewChange('org_123', 'pro');
$result = BillingManager::subscribe('org_123', 'pro'); // + payment intent if due
$usage = BillingManager::usage('org_123');
// Hosted (redirect):
$session = BillingManager::createCheckoutSession('org_123', 'pro', route('billing.done'));
return redirect()->away($session->url);
// Embedded (in-page element):
$intent = BillingManager::createPaymentIntent('org_123', amountMinor: 4_900, currency: 'usd');
// hand $intent->gateway / publishableKey / clientSecret to the front-end; handle SCA there