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