веб-хуки с песочницей Braintree не возвращаются 200

Я использую гем мозгового дерева с песочницей мозгового дерева и пытаюсь настроить веб-хуки. У меня есть следующий код:

class PaymentsController < ApplicationController
    def webhooks
        challenge = request.params["bt_challenge"]
        challenge_response = Braintree::WebhookNotification.verify(challenge)
        return [200, challenge_response]
    end
end

но по какой-то причине, когда я нажимаю «создать веб-хук» на веб-сайте Braintree, мне говорят:

Destination could not be verified.

Я проверил журналы сервера, и он получает запрос, но по какой-то причине возвращает http 500 и говорит следующее:

2014-04-09T23:39:19.937280+00:00 app[web.1]: Completed 500 Internal Server Error in 71ms
2014-04-09T23:39:19.941486+00:00 app[web.1]: ActionView::MissingTemplate (Missing template payments/webhooks, application/webhooks with {:locale=>[:en], :formats=>[:xml, :html, :text, :js, :css, :ics, :csv, :png, :jpeg, :gif, :bmp, :tiff, :mpeg, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :arb, :jbuilder, :haml]}. Searched in:

Это говорит о том, что контроллер ищет представление и не может его найти. Я не уверен, что делать. Код действия веб-перехватчиков взят непосредственно с веб-сайта Braintree: https://www.braintreepayments.com/docs/ruby/guide/webhook_notifications

Кто-нибудь знает, как это исправить?


person Philip7899    schedule 10.04.2014    source источник


Ответы (1)


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

Код в руководстве Braintree Webhook предназначен для Sinatra, но вы используете Rails 4.

Вам нужно сделать что-то вроде

render plain: challenge_response, status: 200

вместо

return [200, challenge_response]

для отображения ответа на вызов без шаблона и с кодом состояния 200.

Дополнительные сведения см. в разделе Макеты и рендеринг в Rails.

person agf    schedule 10.04.2014
comment
@Philip7899 render: plain не следует пытаться использовать шаблон. Если у вас все еще есть проблемы, лучше всего написать в нашу службу поддержки по электронной почте (по адресу [email protected]) и включить свой код, чтобы они могли попытаться воспроизвести проблему. Извините за задержку с ответом, я на конференции. - person agf; 12.04.2014
comment
Вы нашли решение этой проблемы, ребята? Я столкнулся с той же проблемой, потому что Rails пытается отобразить шаблон и, следовательно, выдает исключение, которое останавливает процесс проверки BrainTree. - person jlstr; 03.08.2015
comment
@Jose Чтобы узнать, как отображать текст, а не шаблон, см. руководство по RoR. - person agf; 03.08.2015
comment
Успех! это была проблема с версией Rails 4, простой вариант доступен только с Rails 4.1 и выше. Подробности здесь: stackoverflow.com/questions/22980735/ - person jlstr; 03.08.2015