2013-06-18 2 views
1

Я пробовал шлюз оплаты Braintree в приложении Rails. После обработки транзакции с помощью кредитной карты мое приложение автоматически выведет из системы пользователя. Это происходит только после того, как я совершу сделку, связанную с Braintree. Есть идеи, почему это происходит?Braintree logs out user

ответ

1

Проблема не была напрямую связана с платежным шлюзом Braintree. Это больше связано с CSRF и тем, как Ruby on Rails обрабатывает HTTP-сообщение. Я изначально следовал учебнику по 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