[31]Stripe(ストライプ) << [ホームに戻る] >> [33]レビューモデル
登録したクレジットカードで決済できるようにします。
「app\controllers\charge_controller.rb」ファイルを以下のように編集して下さい。
記述更新 app\controllers\charge_controller.rb
変更箇所が多いのでコードをコピーしてファイルの内容を置き換えて下さい。
class ChargeController < ApplicationController before_action :authenticate_user! def free project = Project.find(params[:project_id]) if current_user.stripe_id.blank? flash[:alert] = "お支払い方法を更新してください。" return redirect_to settings_payment_path else charge end end private def charge project = Project.find(params[:project_id]) if !current_user.stripe_id.blank? customer = Stripe::Customer.retrieve(current_user.stripe_id) charge = Stripe::Charge.create( :customer => customer.id, :amount => project.price, :currency => 'JPY' ) if charge current_user.subscriptions.create(project: project) flash[:notice] = "プロジェクトを購入しました。" redirect_to project else flash[:notice] = "購入できませんでした。" end end rescue Stripe::CardError => e flash[:alert] = e.message redirect_to project end end
これでクレジットカード決済ができるようになりました。
ブラウザ確認
http://localhost:3000/project/1
クレジットカードを登録していない状態で購入しようとすると「クレジットカードを登録してください」とメッセージが出ます。
クレジットカードを登録した後「購入ボタン」を押すとプロジェクトを購入することができます。
Stripeダッシュボードの「payments」を見ると支払いされているのが確認できます。
↓↓クリックして頂けると励みになります。