我正在尝试使用Rails应用程序中的Braintree支付网关。处理完信用卡交易后,我的应用程序会自动注销已注销的用户。它只发生在我做Braintree相关交易之后。任何想法为什么会发生这种情况?
答案 0 :(得分:1)
问题与Braintree的支付网关没有直接关系。它更多地与CSRF以及Ruby on Rails如何处理HTTP Post有关。我最初遵循Braintree上使用的教程。由于与CSRF相关的安全性,这导致Rails松开会话。要通过Rails的安全检查,我必须使用<%= form_for @myobject,...} do | f | %取代。经验教训。
答案 1 :(得分: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