学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Rails6.0 | 動画学習サイトを作成| 32 | クレジットカード決済の実装

[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」を見ると支払いされているのが確認できます。

支払い確認
支払い確認



↓↓クリックして頂けると励みになります。


[31]Stripe(ストライプ) << [ホームに戻る] >> [33]レビューモデル