如果付款成功,则呈现视图

时间:2013-05-23 07:17:42

标签: ruby-on-rails ruby paypal stripe-payments

关于处理付款的快速问题。我想在rails应用程序中成功付款后重定向到特定视图(或显示链接),您将如何处理此类操作?

另外,请让我知道避免安全漏洞的最佳方法,以及您将使用的付款解决方案以及原因。

1 个答案:

答案 0 :(得分:0)

如果您的应用尝试处理某种类型的付款,那么目前最好的付款方式很多人会同意Active Merchant。我没有亲自使用它,但如果你从他们的网站上读到:Active Merchant我确信它会解释核心的好处。我还可以支持这样一个事实:Active Merchant是最好的解决方案,因为ruby-toolbox还突出了以下内容:Ruby Toolbox - Payments这是最常用的。然而,有各种各样的解决方案可以满足您的需求,这取决于您希望它做什么以及您希望它处理什么。此外,关于在成功付款时重定向到特定视图,您可以在createOrderController中执行PaymentsController操作,以执行以下操作:

 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

从上面提供的示例中,此创建操作是您可以如何创建订单的摘录,并且在保存订单后,将向该用户触发邮件,详细说明他们订购的内容。但最相关的内容是format.html块内的redirect_to(root_url, :notice....)这意味着在创建订单时,用户会被重定向到应用程序的根目录,在大多数电子商务系统中home#index。应该清理