我在我的付款解决方案和电子商务应用程序中使用条带检查。我想在成功收费后创建订单。
付款成功后,我只需在销毁购物车之前在当前购物车上更改“成功”布尔属性。我想创建一个订单,因此购物车对象不必处理这个额外的责任。
我的问题是我不知道在哪里告诉控制器创建订单以及如何将数据从当前购物车传递到订单对象。
这是充电控制器设置
class ChargesController < ApplicationController
def new
@user = current_user
@cart = current_cart
@amount = @cart.total_price
end
def create
@amount = @cart.total_price
customer = Stripe::Customer.create(
:email => @user.email,
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => @user.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
# this changes the status of the current cart to success
@cart.update_status(current_cart)
session[:cart_id] = nil
redirect_to current_user, notice: 'You placed an order!'
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
end