在 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