尝试使用ActiveMerchant设置Paypal定期付款时,“令牌无效”

时间:2014-03-24 20:46:08

标签: ruby-on-rails paypal activemerchant

我觉得很多关于此的文档已经过时,但这是我到目前为止所尝试的内容:

我正在使用ActiveMerchant::Billing::PaypalExpressGateway网关。

首先我设置购买并将用户重定向到Paypal:

response = gateway.setup_purchase price,
  return_url: <confirm url>,
  cancel_return_url: <cancel url>,
  items: [
    {
      name: 'My Item',
      quantity: 1,
      description: "My Item Description",
      amount: price
    }
  ]
redirect_to gateway.redirect_url_for(response.token)

这样做,我可以作为沙盒买家登录并确认付款,这会让我从上面回到<confirm url>。在确认中,我这样做:

response = gateway.recurring price, nil,
  token: params[:token],
  period: 'Year',
  frequency: 1,
  start_date: Time.now,
  description: 'My Item Subscription'

当我执行此操作时,我在response变量中收到来自Paypal的无效令牌错误。令牌似乎没问题,当我被带回确认网址时,它会出现在网址中。然后我直接(params[:token])将其发送回Paypal。

我做错了吗?就像我说的,似乎很多这类过程的文档已经过时(或者我正在尝试的是过时的东西......)

1 个答案:

答案 0 :(得分:1)

在浏览了ActiveMerchant的Paypal快速结账网关的源代码后,我得出的结论是,在处理定期付款时它过时了。我切换到了paypal-recurring宝石而且一切正常。