我试图将Braintree的webhook功能应用到我的rails应用程序中,但没有成功。我已经按照他们的文档中的每一步 - https://developers.braintreepayments.com/guides/webhooks/overview,但它仍然无法正常工作。
这是我的webhook控制器中的代码:
class BraintreeWebhookController < ApplicationController
skip_before_filter :verify_authenticity_token
require 'braintree'
def webhook
webhook_notification = Braintree::WebhookNotification.parse(
bt_signature_param,
bt_payload_param
)
#operations here onwards
#...
render status: 200
end
def get_webhook
challenge = bt_challenge_param
challenge_response = Braintree::WebhookNotification.verify(challenge)
render plain: challenge_response, status: 200
end
private
def bt_signature_param
return params[:bt_signature]
end
def bt_payload_param
return params[:bt_payload]
end
def bt_challenge_param
return params[:bt_challenge]
end
end
webhook函数用于HTTP POST请求,而get_webhook函数用于HTTP GET请求。我实际上并不确定get_webhook函数中的编码是什么,而且它不在Braintree的文档中,但是我在Github上的一个用户示例应用程序中找到了它。
我已按如下方式配置路线:
post 'braintree/webhook' => 'braintree_webhook#webhook'
get 'braintree/webhook' => 'braintree_webhook#get_webhook'
一旦我点击了“检查网址”&#39; Braintree的webhook控制面板中的按钮除了错误消息
外没有任何反应上次发送失败。服务器响应无效
非常感谢任何帮助,顺便说一句,我的网站是SSL加密的并使用HTTPS协议,不知道这是否会影响webhook操作。