PHP code example of jiannius / stripe
1. Go to this page and download the library: Download jiannius/stripe 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/ */
jiannius / stripe example snippets
'stripe' => [
'public_key' => env('STRIPE_PUBLIC_KEY'),
'secret_key' => env('STRIPE_SECRET_KEY'),
'webhook_secret' => env('STRIPE_WEBHOOK_SECRET'),
],
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class StripeController extends Controller
{
public function success(Request $request) { /* ... your business logic ... */ }
public function cancel(Request $request) { /* ... your business logic ... */ }
public function webhook(Request $request) { /* see "Handling webhooks" below */ }
}
$webhookSecret = app('stripe')->createWebhook();
return app('stripe')->checkout([
'mode' => 'subscription',
'customer' => $user->stripe_customer_id,
'metadata' => ['order_id' => $order->id],
'line_items' => [[
'quantity' => 1,
'price_data' => [
'currency' => 'USD',
'product_data' => ['name' => 'Pro Plan'],
'unit_amount' => '15.00',
'recurring' => ['interval' => 'month', 'interval_count' => 1],
],
]],
]);
'line_items' => [[
'quantity' => 1,
'price' => 'price_xxx',
]],
public function webhook(Request $request)
{
$stripe = app('stripe');
$status = $stripe->getWebhookStatus();
if ($status === null) {
return response('Invalid signature', 400);
}
$event = $stripe->getValidatedEvent(); // \Stripe\Event
$object = $event->data->object; // \Stripe\Invoice, CheckoutSession, ...
if (\App\Models\ProcessedWebhook::where('event_id', $event->id)->exists()) {
return response('Already processed', 200);
}
match ($status) {
'success' => /* one-time / first-period payment succeeded */,
'renew-success' => /* subscription renewed for another period */,
'renew-failed' => /* renewal payment failed; Stripe may retry */,
'processing' => /* async payment method still settling */,
'failed' => /* checkout expired or async payment failed */,
};
\App\Models\ProcessedWebhook::create(['event_id' => $event->id]);
return response('OK', 200);
}
app('stripe')->cancelSubscription($subscriptionId);
app('stripe')->getStripeClient()->subscriptions->update($subscriptionId, [
'cancel_at_period_end' => true,
]);
app('stripe')
->setSecretKey($tenant->stripe_secret_key)
->setPublicKey($tenant->stripe_public_key)
->setWebhookSecret($tenant->stripe_webhook_secret)
->checkout([ /* ... */ ]);
['success' => $ok, 'error' => $message] = app('stripe')->test();
$newSecret = app('stripe')->createWebhook();
// update STRIPE_WEBHOOK_SECRET in your environment