[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桁の数字
決済に成功するとダッシュボードで確認出来る