Rails PayPal概念证明

时间:2010-03-10 02:05:36

标签: ruby-on-rails paypal

我正在尝试使用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

2 个答案:

答案 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