关于 Discourse 订阅插件,如果我在 Stripe 本身修改某些设置会发生什么?例如,在 Discourse 中无法将产品的计划设置为一次性付款,它必须是按天、周、月或年订阅。但如果我进入 stripe.com,可以将现有订阅更改为一次性付款。我可以这样做吗?这如何影响该计划在 Discourse 中的功能?它是否会变成一次性付款?
这绝对是可行的!如果在创建计划时取消勾选“循环”复选框,它将变为一次性付款。
不过,计划一旦创建,就无法再更改。
你说得对!我刚才脑子短路了。我真正想问的是:是否可以实现一次性付款并自动终止,而不是无限期延续?例如,类似“日票”的模式:支付5美元后,用户被加入一个特殊群组,但一天后订阅自动终止,用户随即从该群组中移除,直到再次付款。这是否可行?
很遗憾,目前不行。
我在插件中做过类似的事情。我(松散地)为 user_group 模型添加了一个动作:当用户被添加到订阅组时,执行某个操作,然后将用户从该组中移除。在你的情况下,你可以实现当订阅将用户添加到 one-off-weeklong 组时:
- 将用户添加到
weeklong组,该组授予访问特定分类的权限; - 添加一个定时任务,在周结束后将用户从
weeklong组中删除; - 添加一个用户自定义字段,记录周开始的日期,以便在发生 Redis 故障等灾难时能够手动删除用户;
- 将用户从
one-off-weeklong组中移除。
如果你对此感兴趣,可以联系我或在 Marketplace 频道发帖。
但这太愚蠢了。相反,只需为订阅(如果是订阅)或客户(如果是一次性付款)添加一个回调。Customer 有点名不副实。它包含 stripe 客户 ID 和 stripe 产品 ID。所以做类似的事情
add_model_callback(DiscourseSubscriptions::Subscription, :after_save) do
Rails.logger.warn("现在得到了订阅 #{self.external_id} 为 #{self.customer_id}")
# 做些事情
end
add_model_callback(DiscourseSubscriptions::Customer, :after_save) do
Rails.logger.warn("客户 #{self.product_id} 为 #{self.user_id}")
# 做更多的事情
end
您好,您解决了这个问题吗?
您能提供更多指导吗?比如如何实现此功能。我对 Rails 不熟悉……谢谢!
我认为这是我最好的免费答案。
您无需删除它们。它们不会造成任何损害。它们是您已售出商品的记录。您应该能够从 Stripe 控制台删除它们。
不知道这是否还是您想实现的目标,或者您是否已经找到了实现此目标的方法?看起来这并不是 Discourse 内置的自动化功能,但可能有其他方法可以实现。这有点像咖啡店的那种模式,您每天都必须购买新的饮品才能坐在他们的桌子旁。


