在 Rails 中使用 Stripe webhook

Posted

技术标签:

【中文标题】在 Rails 中使用 Stripe webhook【英文标题】:Using Stripe webhooks with Rails 【发布时间】:2012-03-11 09:49:54 【问题描述】:

我已经按照 Ryan Bates 的 railscast (http://railscasts.com/episodes/288-billing-with-stripe) 成功构建了一个 rails 应用程序 - 但是,在 railscast 中他没有涉及 webhook。我想知道在公共领域中是否有任何很好的例子来实现和使用 webhook 来管理已创建的订阅计费。

有什么想法/方向会很有帮助吗?

谢谢!

【问题讨论】:

webhook 是“当有事情发生时你给我打电话”与通常的“我会一遍又一遍地给你打电话(轮询)以了解是否发生了什么事”。你能澄清你的问题:你想发生什么? 为了提供更多上下文,我要解决的是:1)如果用户的订阅成功收费,那么我需要知道以便我可以向他们的帐户申请额外的信用 2 ) 如果用户的信用卡详细信息处理不正确,我需要知道以便与他们沟通并要求他们检查/更新这些详细信息这是两个主要用例。我相信 webhook 是做到这一点的正确方法 - 即,如果/当有相关更改时,让 Stripe 联系我的应用程序......而不是使用某种自动化任务,每天 ping Stripe 一次或其他什么。 【参考方案1】:

有一个很好的宝石:https://github.com/integrallis/stripe_event。

它看起来写得很好,维护得很好。

在您的 gemfile 中,您可以简单地添加该行 -

gem 'stripe_event'

github 上的自述文件中有明确的文档。

【讨论】:

【参考方案2】:

大多数支付网关,包括 Stripe,都有某种方式告诉客户端(您的 Web 应用)费用是否通过。

对于 Stripe,他们的 docs 展示了如何从他们那里接收 webhook 通知。

流程是:

    在您的应用程序中创建一个控制器和方法以接收来自 stripe 的 webhook 调用。请注意,调用将以 POST 形式出现,而不是 GET 形式 使用他们的仪表板注册带有条纹的网址。这是您执行一次的手动步骤。 从条带调用您的方法时,使用事件信息更新您的模型,以跟踪用户订阅的状态。

有什么问题吗?

【讨论】:

另请参阅 webhook 上的博客文章:stripe.com/blog/webhooks 和 sinatra 示例:github.com/boucher/stripe-webhook-mailer【参考方案3】:

我想用这个 gem 来测试 stripe webhooks https://github.com/stripe-ruby-mock/stripe-ruby-mock

特点

无需访问条带服务器 轻松测试条带错误 模拟和自定义条纹 webhook 拨动开关以针对 Stripe 的实时测试服务器运行测试

【讨论】:

以上是关于在 Rails 中使用 Stripe webhook的主要内容,如果未能解决你的问题,请参考以下文章

Rails、Stripe 和 Subscriptions - 模型

有没有更安全的方法可以同时使用 Stripe 和 ActiveMerchant? Ruby on Rails

Rails / Stripe - 付款不会处理

成功付款后履行订单 Stripe Rails

没有这样的令牌“some_random_token”在 rails 中发现 Stripe 错误

使用 Stripe on Rails 免费订阅 - 无需卡即可获得令牌