サブスクリプション対応決済サービス Stripe と Laravel からサブスクリプションを操作する Laravel Cashier についてのメモ書き

Stripe Subscription をキャンセルする

● Stripe Subscription をキャンセルする

Stripeのクラスから操作します。

\Stripe\Stripe::setApiKey("sk_test_xxxxxxxxxxv6KeEdZMj9xCPqxxxxxxxxxx");
$subscription = \Stripe\Subscription::retrieve('sub_49ty4767H20z6a');
$subscription->cancel();

● LaravelCashierを使ってStripe Subscription をキャンセルする

LaravelCashierには
・契約中の期間が終了するとともにキャンセルする cancel()
・今すぐキャンセルする cancelNow()
2つのメソッドが用意されています。

$user->subscription('main')->cancel();
$user->subscription('main')->cancelNow();

● 注意  Laravel Cashier を使っている時に「Stripeクラス」または「Stripe管理画面」からキャンセルすると、キャンセルした情報が Laravel Cashier からは取得できません。

これはなぜ起こるかと言うとLaravel Cashier は subscriptions テーブルの サブスクリプション終了日 ( ends_at ) の値を見ているからです。 ( Stripe 管理画面でキャンセルされるとローカルのDBの ends_at に値が入らない。) そこで、Stripe の キャンセルをチェックして、 Stripe管理画面でキャンセルされた場合にsubscriptions の ends_at に値を入れてあげます。

モデル app/Subscription.php


No.1504
06/11 18:29

edit