前回の記事までで、ユーザに定期課金を行なう準備が整いました。 今回は、プランの作成と、そのプランをユーザに購読してもらう方法についてまとめます。

目次

プランを作成する

プランは、料金や有効期間からなる情報です。 次のようにStripe::Planオブジェクトをとおしてプランを作成します。

たとえば、月額¥2,000のBasicプランを作成するには、次のように書きます。

Stripe::Plan.create(
  amount: 2000,
  interval: 'month',
  name: 'Basic',
  currency: 'jpy',
  id: 'basic'
)

:intervalは、その決済が有効な期間を指定します。 month以外にもdayweekなど、柔軟に設定することができます。

プランの作成はStripeのダッシュボードからも行なえますが、アプリケーションと連携させるためにも、アプリケーション側でのプラン作成時に自動で行なうようにしておいた方がいいと思います。

パラメータの詳細などは公式ドキュメントをご覧ください。

顧客にプランを購読させる

上記で作成したプランを、前回の記事で作成した顧客と紐づけることで、定期課金に登録できます。 これは、Stripe::Subscriptionをとおして行ないます。

subscription = Stripe::Subscription.create(
  customer: 'cus_xxxxxxxxxxxxxx',
  plan: 'basic'
)

:planには、プラン作成時に指定したIDを指定します。

subscription.current_period_endには、その購読の有効期限がタイムスタンプで格納されますので、これをアプリケーション側で保持しておきます。 あとは、有料会員限定のコンテンツを表示するところでこの値が未来の値であるかどうかをチェックすればいいことになります。

プランの購読には試用期間や休止の設定なども行なえます。 詳しくは公式ドキュメントをご覧ください。

購読をキャンセルする

ユーザが退会したり、ユーザの要望に応じて購読のキャンセルを行なえなければいけません。 これは、該当するStripe::Subscriptionオブジェクトの#deleteを実行するだけで完了します。

subscription = Stripe::Subscription.retrieve('sub_xxxxxxxxxxxxxx')
subscription.delete

おわりに

以上で、定期課金を実装するために必要な処理は紹介できたと思います。 これらを踏まえ、次回の記事ではRuby on Railsによる定期課金の実装例について書いていきます。