PHP code example of offline / oc-cashier-plugin
1. Go to this page and download the library: Download offline/oc-cashier-plugin 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/ */
offline / oc-cashier-plugin example snippets
'stripe' => [
'model' => \RainLab\User\Models\User::class,
'key' => env('STRIPE_KEY'),
'secret' => env('STRIPE_SECRET'),
'webhook' => [
'url' => '/stripe/webhook',
'handler' => '\OFFLINE\Cashier\Classes\WebhookController@handleWebhook'
]
],
Event::listen('offline.cashier::stripe.webhook.invoice.payment_succeeded', function ($payload, $request) {
$subscription = $payload['data']['object']['subscription'];
$user = \RainLab\User\Models\User::fromSubscriptionId($subscription);
$user->payment_succeeded_at = \Carbon\Carbon::now();
$user->save();
logger()->debug('Received payment', compact('user', 'subscription'));
});
Event::listen('offline.cashier::format.amount', function ($amount) {
return number_format((float)$amount / 100, 2, '.', "'") . ' CHF';
});
public function boot()
{
parent::boot();
Event::listen('offline.cashier::stripeElementForm.submit', function ($post) {
$token = $post['token']['id'] ?? null;
if ( ! $token) {
throw new \RuntimeException('Stripe token is missing!');
}
$user = \Auth::getUser();
$user->newSubscription('main', 'users-selected-plan-id')->create($token);
return [
'redirect' => \Url::to('thank-you')
];
});
}
Event::listen('offline.cashier::subscription.check', function ($user, $component) {
if ( ! $user) {
return false;
}
if (isBanned($user)) {
return false;
}
return $user->subscribed($component->property('subscription'));
});