Rails URL 使用参数重定向计费系统以创建发票

Rails URL billing system redirection with params for invoice creation

我目前正在优化 Rails 应用程序上支付系统的流程。

首先,他们会看到类似 SaaS 的定价表,可以选择和购买。

一旦他们按 "Buy Now" 选择他们的首选计划(他们有 2 种支付资源类型:预付费和后付费),如果用户没有填写他们的账单地址,他们将被重定向以填写它在单独的视图中(如果之前完成,他们将直接转到他们的发票视图)。完成后,他们将被重定向回重新选择他们的定价计划。

但是,为了实现无缝流程,我想在填写帐单地址后直接直接创建发票。

到目前为止,我想到的是在重定向之前在会话中存储定价计划订单 params(其中包括定价计划 ID、促销代码字符串和支付类型路径)以备后用。我想知道如何使用这些会话参数来启动发票的创建并将它们引导回它的视图,也许使用 request.referrer 方法?

感谢您的帮助。

我想你会检查用户在 before_action 中是否有 InvoicesController#new 的账单地址(在这里编造名字,但这并不重要)

现在,如果他们没有填写地址,我会做的(我在我的一个应用程序中实际做的)会像这样

before_action :require_address
def require_address
  unless current_user.billing.present?
    session[:after_billing] = request.url
    redirect_to new_billing_path and return
  end
end

然后在 billings_controller#create 中,因为您知道有时会重定向到其他地方,所以您应该做类似

的事情
redirect_to(session[:after_billing] and return) if session[:after_billing].present?