Stripe Connectを使ってシンプルなサービスをつくる
Stripe Connectは「プラットフォームとマーケットプレイスのための決済インフラ」としてStripeが提供している機能です。 Stripe Connectを使うとStripeアカウント間で親子関係を作り、子アカウントへの支払いに対してプラットフォーム手数料を徴収したり、親のアカウントで支払いを回収してから子アカウントに入金するといったフローが簡単にできるようになります。
今回Stripe Connectを活用して1日100円で応援したい人のページにメッセージを掲載できるパフォーマー応援プラットフォーム tip meというサービスを作りました。
使用フレームワーク
バックエンド: Ruby on Rails
フロント:ActionView(Rails) + Vue.js
支払いのフロー
実際のお金の流れは下記のようになります。
出典: https://stripe.com/docs/connect/enable-payment-acceptance-guide
実装の流れ
下記がざっくりとした実装の流れになります。変数部分は適宜読み替えてください。
前提として、stripe-ruby gemをインストールし、パブリックキー、シークレットキーを設定しておきます。
1. Stripeアカウントの作成
account = Stripe::Account.create({
type: account_type,
country: 'JP',
default_currency: 'jpy',
email: current_user.email})
参照) https://stripe.com/docs/api/accounts/create
2. Stripeアカウントをリンクさせる(親子関係の作成)
account_link = Stripe::AccountLink.create({
account: account.id,
refresh_url: stripe_url,
return_url: stripe_callback_url,
type: 'account_onboarding',
})
アカウントリンク作成後 redirect_to account_link.url
にてStripeアカウントの情報入力画面へリダイレクトさせます。
参照) https://stripe.com/docs/api/account_links/create
3. 決済
Stripe::Charge.create({
amount: total_amount,
currency: currency,
source: stripe_token,
application_fee_amount: application_fee_amount,
expand: ['balance_transaction']
},
stripe_account: stripe_account_id )
stripe_accountに子アカウントのidを入力します。
参照) https://stripe.com/docs/api/charges/create
以上が非常にざっくりですが実装の流れです。
注意点として、Stripeアカウントにはstandard, express, customの3種類があり、standard以外のアカウントを子アカウントとしてStripe Connectを使用すると子アカウントの維持、出金時に手数料が発生します。
参照) https://stripe.com/jp/connect/pricing
おわりに
パフォーマー、サポーターの皆さんにとってより良いサービスにしていきたいと思っています。
ご意見・感想・ご質問等あればお気軽に連絡ください。
https://tipme.fun
Author And Source
この問題について(Stripe Connectを使ってシンプルなサービスをつくる), 我々は、より多くの情報をここで見つけました https://qiita.com/Taka_Dev/items/43b967db691504e15291著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .