【Laravel5.8+Stripe⑩】サブスクリプション中止機能の実装
こちらの連載記事では、LaravelとStripeを使用して企業サイト兼Eコマース(ECサイト)を作成していきます。
Laravelのプロジェクト作成からStripeの実装まで行い、最終的に単発決済・サブスクリプションの実装までを目指します。
シリーズ
【Laravel5.8+Stripe⓪】ECサイト作成チュートリアル概要 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe①】ベースプロジェクトの作成 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe②】メールフォームの実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe③】ユーザー認証機能のカスタマイズ - Laravelとねころっけくん5.8
【Laravel5.8+Stripe④】ディスカウントページを作成する - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑤】Laravel CasherとStripeを導入して管理者権限を設定する その1 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑥】Laravel CasherとStripeを導入して管理者権限を設定する その2 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑦】サブスクリプション決済の作成 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑧】請求書ダウンロード機能の実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑨】サブスクリプションプラン変更機能の実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑩】サブスクリプション中止機能の実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe11】Webhookの実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe12】クーポン機能を実装する - Laravelとねころっけくん5.8
【Laravel5.8+Stripe13】ショッピングカートの実装 - Laravelとねころっけくん5.8
ちなみにこちらの記事は、Easy E-Commerce Using Laravel and Stripeという書籍をもとに執筆しています。
今回の記事では、サブスクリプションサービスの購読中止機能を実装していきます。
サブスクリプションサービスの購読中止機能の実装
まずはルーティングから設定していきます。
/routes/web.php
Route::post('plans/cancel', 'SubscriptionsController@cancelPlan')->name('plans.cancel');
次にView側にキャンセル処理フォームを追加しましょう。
/resources/views/subscriptions/invoices.blade.php
@if (session('message')) <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="alert alert-warning"> {{ session('message') }} </div> </div> </div> @endif {!! Form::open(['route' => 'plans.cancel', 'class' => 'form-inline']) !!} <select> @foreach ($user->invoices() as $invoice) <option>{{ $invoice->date() }}{{ $invoice->total() }}</option> @endforeach </select> <button type="submit" class="btn btn-danger">Cancel</button> {!! Form::close() !!}
キャンセル処理が成功した際に、メッセージが表示されるようになっています。
最後にControllerにアクションの設定をします。
/app/Http/Controllers/SubscriptionsController.php
public function cancelPlan(Request $request) { $planId = $request->get('plan_id'); Auth::user()->subscription('main')->cancel($planId); return redirect('invoices')->with('message','Your plan has been cancelled'); }
これでキャンセル処理は完成です。
試しにいずれかのプランをキャンセルし、Stripeのダッシュボードで確認をしてみましょう。
Stripeのダッシュボードサイドメニュー>Billing>定期支払い で確認できます。
連載記事
【Laravel5.8+Stripe⓪】ECサイト作成チュートリアル概要 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe①】ベースプロジェクトの作成 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe②】メールフォームの実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe③】ユーザー認証機能のカスタマイズ - Laravelとねころっけくん5.8
【Laravel5.8+Stripe④】ディスカウントページを作成する - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑤】Laravel CasherとStripeを導入して管理者権限を設定する その1 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑥】Laravel CasherとStripeを導入して管理者権限を設定する その2 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑦】サブスクリプション決済の作成 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑧】請求書ダウンロード機能の実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑨】サブスクリプションプラン変更機能の実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe⑩】サブスクリプション中止機能の実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe11】Webhookの実装 - Laravelとねころっけくん5.8
【Laravel5.8+Stripe12】クーポン機能を実装する - Laravelとねころっけくん5.8
【Laravel5.8+Stripe13】ショッピングカートの実装 - Laravelとねころっけくん5.8