BackEnd

Stripe Connectを使って継続課金を実装

投稿日:

はじめに

前回は、Stripe Connectの導入について説明しました。今回は、一歩踏み込んで、Stripe Connectでサブスクリプションを実装する方法について紹介します。今回もダイレクト支払いのケースになります。

商品・価格の登録

Stripeには製品と価格の概念があります。製品と価格は1:多の関係にあるため、1つの製品の購入方法をユーザに複数提供することができます。
例えば、あるサービスの利用権利を製品として販売する場合、月額課金と年額課金プランを別々の価格として登録し、紐づけておくことで、ユーザに複数のプランから選んでもらえるようになります。
今回は製品と価格をあらかじめ登録しておき、月額課金を構築していきます。

マイグレーション

productsテーブルにStripeの商品ID、価格IDを持たせるため、前回のマイグレーションに追記します。

製品・価格登録処理の実装

次に、ProductControllerに商品登録用のfunctionを追加します。

store() でStripeへの製品・価格登録と、productsテーブルへのインサートを行っています。前回と同じように、第二引数でショップのStripeアカウントIDを渡すことで、ショップに紐づく製品・価格登録をします。

最後に、製品登録を行うためのviewを作成します。

これで実装は完了です。

Stripe管理画面での確認

 

実際に登録し、Stripeの画面上で登録できたことを確認します。
Stripeで商品を見てみると、登録した製品と価格が入っていることが確認できます。

サブスクリプション登録

それでは、実際にサブスクリプション登録処理を作成していきます。

事前準備

課金処理用のルーティングを通しておくため、web.phpに以下を追記します。

課金処理の実装

課金処理を実装していきます。

処理の流れとしては、

  1. ショップの顧客の存在チェック。ショップの顧客が存在しない場合は、顧客の作成
  2. 顧客に対して支払方法の登録
  3. 課金登録

という流れになります。
ダイレクト支払いの場合、Connectアカウントごとに顧客管理する必要があります。そのため、今回の場合はショップを初めて利用する顧客の場合のみ、新規作成するようにしています。

最後に、viewを作って完成です。(前回作ったものと同じです。)

Stripe管理画面での確認

Stripe Connectアカウントの定期支払を確認すると、定期支払が登録されていることを確認できます。

さいごに

このように、Stripe Connectで月額課金が出来るようになると、マーケットプレイス型の課金プラットフォームを構築することができます。参考にしてみてください。

おすすめ書籍

blog-page_footer_336




blog-page_footer_336




-BackEnd
-, ,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA


関連記事

Go言語

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとある案件では、CRUD操作はsqlcで生成したORMを使い、QueryServiceではgoquを使ってクエリを組み立てています。 以前の記事ではsqlcについて紹介しまし ...

laravel logo

laravel-enumを使ってみたら快適だった

はじめに こんにちは。Laravelでenumを使いたい時、PHPやLaravel本体ではサポートされていないのでComposer経由でパッケージを入れることになります。 今はbensampo/lar ...

Rust入門してみた その3 Enum / match / Option編

はじめに 前回に引き続き、Rustの入門編です。今回はEnumについて調べました。 Enum Rustでは enumキーワードによってEnumを定義することが出来ます。 Enumの定義 まずは、簡単な ...

rails

関連するモデルのレコードを一緒に作成する方法

はじめに フォームからレコードを作成する際に、関連するモデルのレコードを一緒に作成したい場合があると思います。 (例えばbookレコードとauthorレコードなど) 今回はRailsで一度に関連するモ ...

laravel logo

Laravel N+1検出ツールの紹介

はじめに DB利用した実装している際に注意しながらも見落としてしまうN+1問題ですが、自動的に検出してくれるツールがあるのでご紹介します。 Laravel N+1 Query Detector インス ...

フォロー

blog-page_side_responsive

2021年3月
日 月 火 水 木 金 土
 123456
78910111213
14151617181920
21222324252627
28293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。