2013-06-18 45 views
1

我尝试了Raint应用程序中的Braintree支付网关。处理信用卡交易后,我的应用程序会自动注销注销的用户。它只发生在Braintree相关交易之后。任何想法为什么发生这种情况?Braintree注销用户

回答

1

该问题与Braintree的支付网关没有直接关系。它与CSRF以及Ruby on Rails如何处理HTTP Post有关。我最初遵循Braintree使用的教程。这导致Rails由于与CSRF相关的安全性而失去会话。要通过Rails的安全检查,我必须使用<%= form_for @myobject,...} do | f | %>。学过的知识。

0

我的答案是不同的。但是你的回答对我来说足够了。

正如我使用的ActiveMerchant,我会配置return_url(通常是一个动作)跳过CSRF检查与“protect_from_forgery”的例外。

class PaymentsController < ApplicationController 


protect_from_forgery :except=>[:return] 

def return 

    ret = ActiveMerchant::Billing::Integrations::Ipay88::Notification.new(request.raw_post) 

    if ret.success? 
    <code> 
    else 
    <code> 
    end 
end