Below are the php codes to implement the stripe connect process in any platform.
Please add the following routes.
Code Block |
---|
Route::get('/stripe/connect', [StripeController::class, 'viewStripeConnectPage'])->name('stripe.connect');
Route::get('/create/stripe/connect', [StripeController::class, 'generateStripeConnect'])->name('create.stripe.connect');
Route::get('/stripe/connect/refresh', [StripeController::class, 'stripeConnectRefresh'])->name('stripe.connect.refresh');
Route::get('/stripe/connect/return', [StripeController::class, 'stripeConnectReturn'])->name('stripe.connect.return'); |
StripeController
will look like below.
Code Block |
---|
<?php namespace App\Http\Controllers\Services; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Session; class StripeController extends Controller { public function generateStripeConnect() { $stripe = new \Stripe\StripeClient('sk_test_51MmGiGHMOCsDa4DfO8dHJ8nP0D4S07GVFknrZgSUqNoJkaCGCZ28NHYkc6QfqtU33JY513NipZivmqd4vtubFjKH00aVYBrOrk'); $account = $stripe->accounts->create(['type' => 'standard']); $accountLinks = $stripe->accountLinks->create([ 'account' => $account->id, 'refresh_url' => route('stripe.connect.refresh'), 'return_url' => route('stripe.connect.return'), 'type' => 'account_onboarding', ]); if(isset($accountLinks->url)) { $accountUrl = $accountLinks->url; return redirect($accountUrl); } } public function viewStripeConnectPage() { return view('public.stripe-connect'); } public function stripeConnectRefresh() { Session::flash('message', 'Stripe link expired. Please generate again!'); Session::flash('alert-class', 'alert-danger'); return redirect()->route('stripe.connect'); } public function stripeConnectReturn() { Session::flash('message', 'On boarded successfully! You can login now'); Session::flash('alert-class', 'alert-success'); return redirect()->route('stripe.connect'); } } |
Stripe connect view page will be in the following structure.
Code Block |
---|
<!DOCTYPE html>
<html lang="en">
<head>
<title>Blink</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
@if(Session::has('message'))
<p class="alert {{ Session::get('alert-class', 'alert-info') }}">{{ Session::get('message') }}</p>
@endif
<div class="card">
<div class="card-body">
<h4 class="card-title">Stripe connect</h4>
<p class="card-text">Stripe onboarding</p>
<a href="{{ route('create.stripe.connect') }}" class="card-link">Connect stripe account</a>
<a href="https://dashboard.stripe.com/login" class="card-link">Stripe Login</a>
</div>
</div>
</div>
</body>
</html>
|