我觉得很多关于此的文档已经过时,但这是我到目前为止所尝试的内容:
我正在使用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。
我做错了吗?就像我说的,似乎很多这类过程的文档已经过时(或者我正在尝试的是过时的东西......)
答案 0 :(得分:1)
在浏览了ActiveMerchant的Paypal快速结账网关的源代码后,我得出的结论是,在处理定期付款时它过时了。我切换到了paypal-recurring宝石而且一切正常。