我正在尝试使用rails创建一个超简单的paypal自定义集成。我正在关注这个问题Ryan Bates Railscast #141,我进一步简化了它。如果您有超级简单的paypal集成经验,那么任何建议都将受到赞赏!
我正试图通过我的帐户模型传递所有内容。概念验证。
def paypal_url(return_url)
values = {
:business => 'jwade_1268181180_biz@gmail.com',
:cmd => '_cart',
:upload => 1,
:return => return_url,
:invoice => 2,
:amount => 7,
:item_name => 'Membership',
:item_number => 1,
:quantity => 1
}
"https://www.sandbox.paypal.com/cgi-bin/webscr?" + values.to_query
end
当然我创建了一个链接:
<%= link_to "Checkout", @account.paypal_url(accounts_path) %>
Paypal检测到错误:“您的购物车是空的”,这很奇怪,因为我可以看到我的模型在网址中传递的所有内容:
https://www.sandbox.paypal.com/cgi-bin/webscr?amount=7&business=jwade_1268181180_biz@gmail.com&cmd=_cart&invoice=&item_name=Barcoden+Membership&item_number=1&quantity=1&return=/accounts&upload=1
答案 0 :(得分:2)
我发现在railscast后面会出现空车错误消息。 尝试创建一个表单来替换链接,如:
<div>
<%= form_tag 'https://www.sandbox.paypal.com/cgi-bin/webscr' do %>
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="Your sandbox biz Account">
<input type="hidden" name="item_name_1" value="Some Name">
<input type="hidden" name="amount_1" value="100">
<input type="submit" value="PayPal">
<% end %>
</div>
那会有效。看起来除非您使用发布请求,否则不会创建购物车。
在:method => :post
帮助程序中使用link_to
将无效。
您可以使用button_to帮助程序创建迷你表单并替换railcast中的link_to。
答案 1 :(得分:0)
要回答我们需要仔细查看您的代码。
但也许这可以帮到你:A Testable PayPal IPN with Rails 2.3