我们正在尝试从 Controller 而不是表单向 PayPal 提交请求。当我们使用表单版本时一切正常,但是当我们在 Controller 中使用重定向时,无论我们做什么都会出错。似乎存在某种 URL 编码问题。
表格:
<% form_tag Paypal_URL do %> <%= hidden_field_tag :cmd, "_s-xclick"%> <%= hidden_field_tag :encrypted, @paypal_link %> <%= submit_tag "完成购买"%> <%结束%>
Controller :我们已经尝试了以下所有方法,但都会导致错误。
redirect_to Paypal_URL + "?cmd=_s-xclick:encrypted="+ @paypal_link 并返回=> Rails 给我们 URI 错误
redirect_to URI.encode(Paypal_URL + "?cmd=_s-xclick:encrypted="+ @paypal_link) 并返回=> 我们从 paypal 收到 500 错误。看起来链接编码错误
迈克,
这可能不是问题的最佳解决方案,但我还需要从 Controller 重定向到 Paypal 付款网址。以下对我来说效果很好:
if @project.save!
# Send to PayPal
redirect_to URI.encode("https://www.paypal.com/cgi-bin/webscr" + "?cmd=_xclick&business=sales@domain.com¤ct_code=USD&item_name#{@project.name}&amount=#{@project.price}")
else
# not created
redirect_to :back, :notice => "Didn't work"
end
我是一名优秀的程序员,十分优秀!