パッケージインストール & マイグレーション
- StripeのCashierパッケージをインストール
composer require laravel/cashier- インストール後、Cashierにより登録されたマイグレーションを実行
php artisan migrateこれにより、usersテーブルにstripe_idカラムが追加される
他、課金用テーブルなども追加されるけど今回使用するのはこのカラムだけ
APIキーを設定
- .env
STRIPE_KEY= pk_test_XXXXXXXXXXXXX
STRIPE_SECRET=sk_test_XXXXXXXXXXXXキー情報は、Stripe管理画面の「開発者」→ APIキー → 標準キーで確認ができる
請求ポータルを表示させる
今回は、usersテーブルのstripe_idカラムに有効な顧客IDが入っている前提で進める
- Userモデルに
Billableを追加
これがないと、ポータルを開くためのメソッドが使用できないので注意
<?php
namespace App\Models;
// ⭐️ 追加
use Laravel\Cashier\Billable;
class User extends Authenticatable
{
// ⭐️ 追加
use Billable;
}続いて、ポータル表示用のルーティング設定
- routes/web.php
Route::get('/billing-portal', function (\Illuminate\Http\Request $request) {
return $request->user()->redirectToBillingPortal();
});ここで使用しているredirectToBillingPortal()メソッドは
デフォルトではポータルでの作業完了後にはhomeルートに戻るように設定されている
そのリダイレクト先を変更するには、第一引数にルートを設定してあげる
Route::get('/billing-portal', function (\Illuminate\Http\Request $request) {
return $request->user()->redirectToBillingPortal(route('billing'));
});これで、ログインした状態で /billing-portalにアクセスする
ボタンを表示する場合はこんな感じ
<a href="{{ route('billing-portal') }}">ポータルを表示する</a>ポータルが表示された
















Laravelで、Cashierを利用してStripeの請求カスタマーポータルを表示する