Rails PayPal 概念验证

Posted

技术标签:

【中文标题】Rails PayPal 概念验证【英文标题】:Rails PayPal proof of concept 【发布时间】:2011-01-25 17:21:28 【问题描述】:

我正在尝试创建一个与 rails 的超简单的 paypal 自定义集成。我正在关注Ryan Bates Railscast #141 关于这个主题,我已经进一步简化了它。如果您有超级简单的贝宝集成经验,任何建议都将不胜感激!

我正在尝试通过我的帐户模型传递一切。概念验证。

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 检测到错误:“您的购物车是空的”,这很奇怪,因为我可以看到我的模型在 URL 中传递的所有内容:

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

【问题讨论】:

【参考方案1】:

我发现跟随 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>

这会奏效。除非您使用发布请求,否则似乎不会创建购物车。

link_to 助手中使用:method =&gt; :post 将不起作用。

您可以使用 button_to 帮助器创建一个迷你表单并替换 railcast 中的 link_to。

【讨论】:

【参考方案2】:

要回答这个问题,我们需要仔细查看您的代码。

但也许这可以帮助你:A Testable PayPal IPN with Rails 2.3

【讨论】:

以上是关于Rails PayPal 概念验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Rails 4 的 Paypal 电子邮件验证

验证用户的 API 凭证 - Rails、ActiveMerchant 和 PayPal Express Gateway

Paypal 定期付款响应验证并与 paypal 返回页面变量匹配

未调用 Rails 应用程序上的 Paypal IPN

Django、PayPal IPN 和用户名 - 概念问题

整理Ruby相关的各种概念(rvm, gem, bundle, rake, rails等)