2014-03-24 62 views
5

我覺得有很多的,這是過時的文檔的時候,但是這是我一直努力至今:「令牌無效」試圖建立貝寶定期付款與ActiveMerchant

我現在用的是ActiveMerchant::Billing::PaypalExpressGateway網關。

首先,我建立購買和將用戶重定向到貝寶:

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變量。令牌似乎沒有問題,當我被帶回到確認URL時,它出現在URL中。然後我直接把它(params[:token])併發送回貝寶。

我在做一些完全錯誤的事情嗎?就像我說的,似乎很多這類過程的文檔已過時(或者我正在嘗試的是過時的東西......)

+0

我們沒有設置定期付款,但我們有PayPal快捷網關爲ActiveMerchant在http://firststopcosmeticshop.co.uk(開發應用程序)工作 - >您想讓我粘貼代碼嗎? –

+0

@RichPeck:我正在嘗試快速結帳,但我正面臨[this](http://stackoverflow.com/questions/22809440/test-paypal-express-gateway-redirecting-to-live-and-not-沙箱)問題。能否請你幫忙 – nish

回答

1

通過查看ActiveMerchant的PayPal express源代碼結賬網關,我得出的結論是,它在處理經常性支付時已經過時了。我切換到paypal-recurring寶石,而不是一切正常。