支付成功后渲染视图
Posted
技术标签:
【中文标题】支付成功后渲染视图【英文标题】:Render view if payment successful 【发布时间】:2013-05-18 10:52:06 【问题描述】:关于处理付款的快速问题。我想在 Rails 应用程序中成功付款时重定向到特定视图(或显示链接),你们将如何处理这样的操作?
另外请告诉我避免安全漏洞的最佳方法,以及您将使用哪种支付解决方案以及原因。
【问题讨论】:
在什么上使用redirect_to?这就是我要问的。为了使用redirect_to,我如何将成功付款的信息返回到我的应用程序。 【参考方案1】:如果您的应用正在尝试处理某种支付方式,那么目前最好的方式是 Active Merchant,许多人都会同意这一点。我没有亲自使用过它,但如果您从他们的网站上阅读:Active Merchant 我确信它会解释核心优势。我还可以支持 Active Merchant 是最好的解决方案这一事实,因为 ruby-toolbox 还突出显示了以下内容:Ruby Toolbox - Payments 这是最常用的。但是,有多种解决方案可以满足您的需求,这取决于您到底想要它做什么以及想要它处理什么。此外,关于重定向到成功付款的特定视图,您将在您的 OrderController
或 PaymentsController
中有一个 create
操作,它会执行以下操作:
def create
@order = Order.new(params[:order]) #Create new order based on the 'new' action and pass in order object.
@order.add_line_items_from_cart(current_cart) #Add the line_items from the cart to the @order.
respond_to do |format|
if @order.save #Begin to save order
OrderMailerProcess.order_process(@order).deliver
#OrderMailerProcess is called and passes in the order
#and uses the .deliver function that sends the user the email.
#The OrderMailerProcess is a mailer set in mailers directory. order_process
#is the function that handles the mailer.
Cart.destroy(session[:cart_id]) #If the order is saved destroy the current session of the cart.
session[:cart_id] = nil #Cart_id now becomes nil
format.html redirect_to(root_url, :notice => #Format into ht
'Thank you for your order you will recieve an email shortly.')
else
format.html render :action => "new"
end
end
end
从上面提供的示例中,此创建操作是您可能如何创建订单的 sn-p,并且在保存订单后,会触发邮件发送给该用户,详细说明他们订购的内容。但与您最相关的是format.html
块内的redirect_to(root_url, :notice....)
这意味着在创建订单后,用户将被重定向到您的应用程序的根目录,在大多数电子商务系统中该根目录为home#index
。应该把事情弄清楚
【讨论】:
非常感谢,我会阅读活跃商家的信息。听起来正是我需要的。 如果这回答了您的问题,请不要忘记将其标记为完成 :)以上是关于支付成功后渲染视图的主要内容,如果未能解决你的问题,请参考以下文章