今現在私は、stripeのcheckoutを使い、決済機能を実装しています。決済の処理はすることができるのですが、決済後のリダイレクトを指定することができない状態にいます。(元のページ(plans/showページ)に戻ってしまう状態にあります。)もしわかる方がいらしたら、教えて頂きたいです。
controller
1 class ChargesController < ApplicationController 2 3 def create 4 @plan = Plan.find(params[:id]) 5 customer = Stripe::Customer.create({ 6 email: params[:stripeEmail], 7 source: params[:stripeToken], 8 }) 9 charge = Stripe::Charge.create({ 10 customer: customer.id, 11 amount: @plan.price, 12 description: "商品ID:#{@plan.id} 商品名:#{@plan.title}", 13 currency: "jpy", 14 15 }) 16 payment.email = customer.email 17 #rails側の売れたとき処理 18 redirect_to purchase_path, notice: 'Event was successfully created.' 19 20 21 rescue Stripe::CardError => e 22 flash[:error] = e.message 23 redirect_to create_charge_path 24 end 25end 26
plans/showページ
view
1<%= form_tag @plan, url: :charges, class: "payment-go" do %> 2 <script src="https://checkout.stripe.com/checkout.js" style="background: #EBEBEB;" class="stripe-button" 3 data-key="<%= Rails.configuration.stripe[:publishable_key] %>" 4 data-amount="<%= @plan.price %>" 5 data-currency="jpy" 6 data-description="クレジット決済" 7 data-name=<%= "#{@plan.title}を購入" %> 8 data-email=<%= "#{current_guider.email}" %> 9 data-label="購入する" 10 data-image="https://stripe.com/img/documentation/checkout/marketplace.png" 11 data-locale="auto" 12 data-allow-remember-me="false"> 13 </script> 14<% end %> 15
gemfile
1group :development, :test do 2 # Call 'byebug' anywhere in the code to stop execution and get a debugger console 3 gem 'byebug' 4 gem "dotenv-rails" 5end 6 7gem 'stripe' 8
routes.rb
1post "plans/:id/charge", to: "charges#create", as: "charge"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/05 17:29
2019/10/06 03:50
2019/10/06 12:22 編集
2019/10/06 12:36 編集
2019/10/06 12:35
2019/10/06 13:23 編集
2019/10/06 14:33
2019/10/06 15:46 編集