使用 post 参数重定向到付款 URL

Posted

技术标签:

【中文标题】使用 post 参数重定向到付款 URL【英文标题】:redirect to payment URL with post params 【发布时间】:2016-02-04 13:33:05 【问题描述】:

我想将 PayuMoney 支付网关集成到我的 rails 应用程序中。我想通过 post 请求重定向到支付网关 URL,所以我使用 HTTparty 重定向和 POST 请求到 payumoney URL。

我的控制器:

class ClientFeePaymentsController < ApplicationController
 include HTTParty

 def fee_payment
   uri = URI('https://test.payu.in/_payment.php')
   res = Net::HTTP.post_form(uri, 'key' => 'fddfh', 'salt' => '4364')
   puts res.body    
 end 
end

路线:

resources :client_fee_payments do
    collection do
      get :fee_payment
      post :fee_payment
    end
  end

当我运行它时,我得到了,

Missing template client_fee_payments/fee_payment, application/fee_payment with :locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :axlsx, :jbuilder].

【问题讨论】:

你找到解决办法了吗?? 【参考方案1】:

您不能使用发布请求进行重定向。您需要发送您的 post 请求,然后重定向到一个页面。

您应该在控制器方法的末尾使用redirect_to :some_page

现在 rails 正在尝试呈现“默认”,这就是您收到该错误的原因。

试试this

require "net/http"
require "uri"

uri = URI.parse("http://example.com/search")

# Shortcut
response = Net::HTTP.post_form(uri, "q" => "My query", "per_page" => "50")

# Full control
http = Net::HTTP.new(uri.host, uri.port)

request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data("q" => "My query", "per_page" => "50")

# Tweak headers, removing this will default to application/x-www-form-urlencoded 
request["Content-Type"] = "application/json"

response = http.request(request)

【讨论】:

如何通过 post 请求重定向到 test.payu.in/_payment.php。 ? @hattenn 您无法通过发布请求进行重定向。 redirect_to 正在使用 html 中的“Location: url”标头。在 redirect_to 你只能使用 GET 参数 @dthal 是正确的。我在我的问题中添加了一些可能对您有帮助的更多信息。

以上是关于使用 post 参数重定向到付款 URL的主要内容,如果未能解决你的问题,请参考以下文章

付款完成后,PayPal 不会自动重定向到我的网站

带有 POST 参数的外部 django 重定向

使用 IPN 方法的 Paypal 付款在付款后未重定向

无法在不重定向的情况下创建付款发票

重定向到`Java`中的get方法时如何从url中删除参数[重复]

PayPal IPN 脚本未重定向到 ipn.php