如何在 Rails 上的 Ruby 中创建 webhook
How to create a webhook in Ruby on Rails
我有一个项目,我在其中实现了不同类型的支付,我正在使用 Conekta API
,现在我想做的是在我的项目中实现 webhook,但我是新手而且我不知道该怎么做
我的控制器中有一个方法并在我的 routes.rb
中指定了一个 post 路由
我的控制器:
class WebhooksController < ApplicationController
skip_before_filter :verify_authenticity_token
def receive
data = JSON.parse(request.body.read)
if data['type'] == 'charge.paid'
@payment_method = data['charges']['data']['object']['payment_method']['type']
msg = 'Tu pago con #{@payment_method} ha sido comprobado'
ExampleMailer.email(data, msg)
end
end
render status: 200
end
我的routes.rb:
post 'webhooks/receive'
根据文档,我需要将路由传递给 Conekta,但我的做法不正确:
http://localhost:3000/webhooks/receive
如何在 rails 上的 ruby 中正确创建 webhook?有什么例子吗?非常感谢!!
我认为您不能将 localhost
传递给 Conekta,因为它将无法通过 localhost
访问您的应用程序(这意味着只能在本地访问)。
有一个名为 ngrok 的工具可以将您的主机暴露在外部并提供一个 public 主机。您可以尝试使用它并再次测试您的 webhook。
我有一个项目,我在其中实现了不同类型的支付,我正在使用 Conekta API
,现在我想做的是在我的项目中实现 webhook,但我是新手而且我不知道该怎么做
我的控制器中有一个方法并在我的 routes.rb
中指定了一个 post 路由我的控制器:
class WebhooksController < ApplicationController
skip_before_filter :verify_authenticity_token
def receive
data = JSON.parse(request.body.read)
if data['type'] == 'charge.paid'
@payment_method = data['charges']['data']['object']['payment_method']['type']
msg = 'Tu pago con #{@payment_method} ha sido comprobado'
ExampleMailer.email(data, msg)
end
end
render status: 200
end
我的routes.rb:
post 'webhooks/receive'
根据文档,我需要将路由传递给 Conekta,但我的做法不正确:
http://localhost:3000/webhooks/receive
如何在 rails 上的 ruby 中正确创建 webhook?有什么例子吗?非常感谢!!
我认为您不能将 localhost
传递给 Conekta,因为它将无法通过 localhost
访问您的应用程序(这意味着只能在本地访问)。
有一个名为 ngrok 的工具可以将您的主机暴露在外部并提供一个 public 主机。您可以尝试使用它并再次测试您的 webhook。