我已经构建了一个类似于 Byron Bowerman 的stripe-example的 Stripe SaaS 应用程序。
来自 Stripe 的通知称为“webhook”,包括支付成功或失败等信息。在我的应用程序中,它们由stripe-event gem接收,然后将信息传递给 Webhook 模型以保存在数据库中。
我想使用这些事件来触发操作:
- 电子邮件给用户
- 更新用户模型
- 等等
问题是哪个班级应该采取这些行动,应该如何通知它?
有几个选项:
1) 在 Webhook 模型中
容易,但感觉超出了这个类的职责。
2) Webhook 观察者
一个观察者,还是不同行为的单独观察者?
3) Rails 通知
ActiveSupport::Notification
Webhook 模型可以在每次收到 webhook 时发送一个。这可以由应用程序中任何位置的类订阅。如果我走这条路,在 User 模型、UsersController 或其他地方这样做是否合适?
我对这种方法的担心是,在他关于通知的 railscast 中, Ryan Bates 建议“通知最好用于日志记录和不修改应用程序核心行为的代码”。
4) ...?
你有什么建议?