Download Laravel App
composer create-project --prefer-dist laravel/laravel my-app
C:\xampp\htdocs\laravel10project>composer create-project laravel/laravel laravel10project
Connecting our Database
open .env file root directory.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb
DB_USERNAME=root
DB_PASSWORD=
Database Migration
php artisan migrate
C:\xampp\htdocs\laravel\laravel10project>php artisan migrate
Migration table created successfully.
check database table
Create Controller
C:\xampp\htdocs\laravel\laravel10project>php artisan make:controller StripeController
app\Http\Controllers\StripeController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | // <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class StripeController extends Controller { public function checkout() { return view( 'checkout' ); } public function session(Request $request ) { \Stripe\Stripe::setApiKey(config( 'stripe.sk' )); $productname = $request ->get( 'productname' ); $totalprice = $request ->get( 'total' ); $two0 = "00" ; $total = "$totalprice$two0" ; $session = \Stripe\Checkout\Session::create([ 'line_items' => [ [ 'price_data' => [ 'currency' => 'USD' , 'product_data' => [ "name" => $productname , ], 'unit_amount' => $total , ], 'quantity' => 1, ], ], 'mode' => 'payment' , 'success_url' => route( 'success' ), 'cancel_url' => route( 'checkout' ), ]); return redirect()->away( $session ->url); } public function success() { return "Thanks for you order You have just completed your payment. The seeler will reach out to you as soon as possible" ; } } |
https://github.com/stripe/stripe-php
composer require stripe/stripe-php
C:\xampp\htdocs\laravel\my-app>composer require stripe/stripe-php
Create File stripe.php config\stripe.php
1 2 3 4 5 6 7 | //config\stripe.php <?php return [ 'pk' => env( 'STRIPE_KEY' ), 'sk' => env( 'STRIPE_SECRET' ), ]; |
open .env file add this
STRIPE_KEY=pk_test_xxxxxxxxxxxxxxxxxxx
STRIPE_SECRET=sk_test_xxxxxxxxxxxxxx
Create View File
Bootstrap 5
https://getbootstrap.com/docs/5.0/getting-started/introduction/
https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css
resources/views/checkout.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | //resources/views/checkout.blade.php <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "utf-8" > <meta http-equiv= "X-UA-Compatible" content= "IE=edge" > <meta name= "viewport" content= "width=device-width, initial-scale=1" > <title>Laravel 10 How To Integrate Stripe Payment Gateway</title> <link rel= "stylesheet" type= "text/css" href= "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" > </head> <body> <div class = "container" > <div class = 'row' > <h1>Laravel 10 How To Integrate Stripe Payment Gateway</h1> <div class = 'col-md-12' > <div class = "card" > <div class = "card-header" > Laravel 10 How To Integrate Stripe Payment Gateway </div> <div class = "card-body" > <table id= "cart" class = "table table-hover table-condensed" > <thead> <tr> <th style= "width:50%" >Product</th> <th style= "width:10%" >Price</th> <th style= "width:8%" >Quantity</th> <th style= "width:22%" class = "text-center" >Subtotal</th> <th style= "width:10%" ></th> </tr> </thead> <tbody> <tr> <td data-th= "Product" > <div class = "row" > <div class = "col-sm-3 hidden-xs" ><img src= "{{ asset('img') }}/1.jpg" width= "100" height= "100" class = "img-responsive" /></div> <div class = "col-sm-9" > <h4 class = "nomargin" >Asus Vivobook 17 Laptop - Intel Core 10th</h4> </div> </div> </td> <td data-th= "Price" > $6 </td> <td data-th= "Quantity" > <input type= "number" value= "1" class = "form-control quantity cart_update" min= "1" /> </td> <td data-th= "Subtotal" class = "text-center" > $6 </td> <td class = "actions" data-th= "" > <button class = "btn btn-danger btn-sm cart_remove" ><i class = "fa fa-trash-o" ></i> Delete </button> </td> </tr> </tbody> <tfoot> <tr> <td colspan= "5" style= "text-align:right;" ><h3><strong>Total $6 </strong></h3></td> </tr> <tr> <td colspan= "5" style= "text-align:right;" > <form action= "/session" method= "POST" > <a href= "{{ url('/') }}" class = "btn btn-danger" > <i class = "fa fa-arrow-left" ></i> Continue Shopping</a> <input type= "hidden" name= "_token" value= "{{csrf_token()}}" > <input type= 'hidden' name= "total" value= "6" > <input type= 'hidden' name= "productname" value= "Asus Vivobook 17 Laptop - Intel Core 10th" > <button class = "btn btn-success" type= "submit" id= "checkout-live-button" ><i class = "fa fa-money" ></i> Checkout</button> </form> </td> </tr> </tfoot> </table> </div> </div> </div> </div> </div> </body> </html> |
routes/web.php
1 2 3 4 5 6 7 8 9 10 11 12 | //routes/web.php <?php use Illuminate\Support\Facades\Route; Route::get( '/' , function () { return view( 'welcome' ); }); Route::get( '/checkout' , 'App\Http\Controllers\StripeController@checkout' )->name( 'checkout' ); Route::post( '/session' , 'App\Http\Controllers\StripeController@session' )->name( 'session' ); Route::get( '/success' , 'App\Http\Controllers\StripeController@success' )->name( 'success' ); |
Starting Laravel development server: http://127.0.0.1:8000/checkout