Stripe

[Laravel Sail]Stripeでテスト決済#1

chashierインストール

sail composer require laravel/cashier

 
.envに下記追記

STRIPE_KEY="公開可能キー"
STRIPE_SECRET="シークレットキー"

キーは下図赤枠に記載されている

 
下図の赤枠をオンにしておく

 
StripeController作成

sail artisan make:controller StripeController

 
下記追記

use Stripe\Stripe;
use Stripe\Charge;

class StripeController extends Controller
{
    public function list()
    {
        return view('stripe.index');
    }

    public function charge(Request $request)
    {
        Stripe::setApiKey(env('STRIPE_SECRET'));
        $charge = Charge::create([
            'amount'   => 1000,
            'currency' => 'jpy',
            'source'   => request()->stripeToken,
        ]);
        return back();
    }
}

 
views/stripe/index.blade.phpを作成

<x-app-layout>
    <x-slot name="header">
        <h2 class="font-semibold text-xl text-gray-800 leading-tight">
            {{ __('Stripe一覧表示') }}
        </h2>
    </x-slot>

    <div class="mx-auto px-6">
        {{-- @if(session('message'))
            <div class="text-red-600 font-bold">{{session('message')}}</div>
        @endif --}}
        <x-message :message="session('message')" />
        <div class="mt-4 p-8 bg-white w-full rounded-2xl">
            <h1 class="p-4 text-lg font-semibold">テスト決済1000円</h1>
            <hr class="w-full">
            <form action="{{route('stripe.charge')}}" method="POST">
                @csrf
                <script
                src="https://checkout.stripe.com/checkout.js" class="stripe-button"
                data-key="{{ env('STRIPE_KEY') }}"
                data-amount="1000"
                data-name="お支払い画面"
                data-label="テスト決済する"
                data-description="現在はデモ画面です"
                data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
                data-locale="auto"
                data-currency="JPY">
                </script>
            </form>
        </div>
    </div>
</x-app-layout>

 
routes/web.phpに下記追記

use App\Http\Controllers\StripeController;
Route::post('/stripe/charge', [StripeController::class,'charge'])->name('stripe.charge');
Route::get('/stripe', [StripeController::class,'list'])->name('stripe.index');

 
localhost/stripeにアクセス後「テスト決済する」押下して下記を入力
適当なメールアドレス
4242424242424242
適当な日付 3桁の数字

 
決済に成功するとダッシュボードで確認出来る