[Rails]Stripe Checkoutを利用して定期決済機能を実装する
Stripeでサブスクに入ったユーザーには広告を表示しないようにしようと思っています。
上記サイトを参考にStripeで商品を作り購入できるところまでは作ったのですが、購入したユーザーかどうかを判別するにはどうすればいいのでしょうか?
deviseを使ってユーザーログイン機能があるので、
上記リンクの一つ目のサイトの
def create_subscription session = Stripe::Checkout::Session.retrieve(params[:session_id]) Payment.create(customer_id: session.customer) end
Pageモデルのcustomer_idとUserモデルのuser_idを紐づけるのか、
それとも
こちらのサイト(RailsでStripe Connectを使ってみる)のようにStripe Connectで
UsserモデルにStripeアカウントを紐づけるカラムを追加して行っていけばいいのか、迷っています。
色々サイトを見すぎて自分の中でも情報がこんがらがっているのですが、いいやり方、ヒントなど教えて頂けると幸いです。
pagescontroller
1class PagesController < ApplicationController 2 def plan 3 end 4 def payment1 5 6 @session = Stripe::Checkout::Session.create({ 7 payment_method_types: ['card'], 8 line_items: [{ 9 price: 'price_1JHInhKvK6IwxiRHdUTvMA3v', 10 quantity: 1, 11 }], 12 mode: 'subscription', 13 success_url: request.base_url + '/pages/success_payment?session_id={CHECKOUT_SESSION_ID}', 14 cancel_url: request.base_url + '/pages/payment1', 15 }) 16 17 end 18 19 def payment2 20 @session = Stripe::Checkout::Session.create({ 21 payment_method_types: ['card'], 22 line_items: [{ 23 price: 'price_1JHfNfKvK6IwxiRH6Nir0rrD', 24 quantity: 1, 25 }], 26 mode: 'subscription', 27 success_url: request.base_url + '/pages/success_payment?session_id={CHECKOUT_SESSION_ID}', 28 cancel_url: request.base_url + '/pages/payment2', 29 }) 30 end 31 def payment3 32 @session = Stripe::Checkout::Session.create({ 33 payment_method_types: ['card'], 34 line_items: [{ 35 price: 'price_1JHIoLKvK6IwxiRHxspl0cCo', 36 quantity: 1, 37 }], 38 mode: 'subscription', 39 success_url: request.base_url + '/pages/success_payment?session_id={CHECKOUT_SESSION_ID}', 40 cancel_url: request.base_url + '/pages/payment3', 41 }) 42 end 43 def success_payment 44 session = Stripe::Checkout::Session.retrieve(params[:session_id]) 45 Pages.create(customer_id: session.customer) 46 end 47 48 49end 50 51 52 53
あなたの回答
tips
プレビュー