功能请求: 我希望能够提供仅持续一个周期的订阅。在该周期结束时:
- 用户应被移出订阅的 Discourse 群组(我认为目前的单次付款不会发生这种情况)。
- 不应再收取任何费用。
可能的解决方案? Discourse Subscriptions 插件应允许设置订阅计划的 iteration 属性。我在 Stripe 文档的 Subscription Schedules API 页面上找到了这一点:
设置阶段的长度
价格的间隔决定了订阅的计费频率。例如,每月间隔的计费周期是每个月。阶段有一个 iterations 属性,用于指定阶段的持续时间。将此值乘以间隔以确定阶段的长度。如果订阅计划使用具有每月间隔的价格,并将 iterations 设置为 2,则该阶段将持续两个月。
…
完成计划
订阅计划在最后一个阶段完成后结束。此时,订阅将保留,并且不再与计划相关联。如果您想在计划的最后一个阶段完成后取消订阅,可以将 end_behavior 设置为 cancel。
3 个赞
不,不幸的是,这个插件存在太多特异性和缺失的功能。不过,我不知道自我的问题以来它是否有所改变。
1 个赞
nathank
(Nathan Kershaw)
6
祝你好运!这对我们来说也将非常有帮助,尤其是在一次性活动方面。
我敢肯定,这现在已经达到了“三的法则”。
1 个赞
Subscriptions 插件很快将进行一次更新,以解决此问题。
它还将解决税务问题:Automatic_tax.enabled for Discourse Subscription plugin
并启用其他付款方式。 How can I customise the discourse-subscription plugin?
如果您对该插件还有其他痛点,请联系我。我认为我已经了解了大部分,但仍有一些部分我想了解更多。例如,我想更多地了解您对营销活动功能的看法。这里有人用过吗? 
4 个赞
nathank
(Nathan Kershaw)
8
我正在使用 betterstreets.nz 的宣传活动。它还可以,但不太灵活。我 9 个月前设置了它,它仍在进行中(尽管速度极其缓慢!)。
我最大的问题是,我现在无法让人们简单地捐赠 X 金额;相反,他们必须每年订阅。
此外,它也是以相同的术语呈现的——即按月。这使得金额很奇怪,而且与大多数人对宣传活动的看法不同:从零到 X 的绝对金额。即使以年为单位呈现也会好得多。
横幅还可以(顶部用于发现页面,底部用于主题),但不太可定制。如果能让它们变大或变小,以便与网站的其他部分(例如其他横幅/页脚)融为一体,那就更好了。
一旦用户在设备上关闭了它,如果能偶尔强制它们重新出现,或者让它们缩小到一个更不显眼的东西(但仍然存在,直到那个人捐款为止),那就更好了。
2 个赞
非常感谢您的反馈!
这非常有帮助。
我明白了。我注册了您的论坛来验证这一点,并且我理解您的意思。
也许最好根本不要让它们可以关闭?它们似乎并不太碍眼,即使对已经捐赠的人也能提供有价值的信息。它为社区提供了一个共同的目标,捐赠者也应该因其贡献而受到认可。
在 Discourse 中有许多创建横幅的方法。您目前使用的是哪种方法?
我注意到的一点是:在我注册论坛之前,我并不知道可以为您的事业捐款。我们知道,大部分受众将是潜在读者,只有少数人会决定注册。
因此,向未登录用户展示宣传横幅似乎是个好主意。我相信有很多人愿意捐款,但目前不是活跃/注册会员。
到目前为止,反馈很棒!

2 个赞
nathank
(Nathan Kershaw)
10
在 betterstreets.nz 中,我只使用“Subscriptions”插件的“campaign”部分附带的横幅。它的存在阻止了我添加其他横幅!
不过,我在其他网站上确实使用了其他横幅。
完全同意——但前提是这样做非常清晰且容易操作!
1 个赞
我不记得 Stripe 的术语了,但整个插件围绕着他们旧的做事方式(只允许信用卡)而不是新的做事方式(允许各种支付选项)。
取消的描述方式令人困惑(据我记忆,这是取消自动续订,但似乎被描述为立即取消)。
我之前添加了许多关于该插件的主题。许多都没有得到回复,所以很高兴听到您现在正在处理该插件。编辑:这是一个链接 – Search results for 'tags:subscriptions @Jonathan5' - Discourse Meta
2 个赞
另外,如果在注册论坛的同时也能进行订阅那就太好了。目前这种分两步进行的方式并非在所有情况下都最理想。
2 个赞
Alex_王
(Alex 王)
14
我通过在价格对象中添加新的元数据(“recurring:0/1”)成功解决了具有时间间隔的一次性订阅。当您尝试创建价格[:metadata][:recurring]==“0”的订阅时,我将在订阅对象中设置cancel_at_end值为true。
然后,当您创建一次性价格时,您仍然需要选择一个间隔(年、月、日、周),但不应勾选“recurring”框。
当用户订阅时,后端将创建一个将在结束日期结束的定期订阅。用户无需自行取消续订。
但是,我发现我无法删除我创建的产品。请参阅 Cannot delete products on Discourse Subscriptions - #2 by Jonathan5
正在上傳: image.png…
这是我的问题,我无法删除产品。我应该在Stripe上删除它们吗?
1 个赞
我有点跟不上这些混杂的话题了!祝你一切顺利。我很久没用那个插件了,所以帮不上忙,很遗憾。
2 个赞
这个话题变得相当混乱。我并不清楚如何能清晰地解决它。
不过,我建议大家尽量每个话题只讨论一个问题/功能,这样更容易跟进和追踪。
3 个赞
@Alex_王 @Jonathan5 @nathank
如果你愿意,可以试用更新后的代码。你可以从这个 PR 中检出分支:
你需要在本地运行 stripe cli 来转发 webhook 消息。这是要使用的命令:
stripe listen --forward-to http://localhost:4200/subscriptions/hooks --api-key your_api_key
你还需要将 stripe webhook 密钥添加到 discourse 实例(作为插件设置“webhook secret”)。你可以在 stripe 上的 webhook 创建表单中找到它,就在右侧的代码示例中。
我制作了一个短视频,概述了数据结构以及它们如何与 Discourse 数据结构连接:
我基本同意这一点,但现在应该已经修复了。你可以在 Stripe 中配置任何你想要的东西(支付方式/税费/定价表等),并且它们都应该能正常工作。
该插件仅管理 Discourse 用户和 Stripe 客户之间的连接,产品的创建、计划等完全在 Stripe 的仪表板中完成。
仍然可能存在 bug。如果你发现任何问题,请报告。

3 个赞
nathank
(Nathan Kershaw)
18
所以这是您计划提交给官方插件的 PR 请求的一个分支,一旦它打磨得更好一些?如果是这样——太棒了!!!感谢您为此付出的辛勤工作和精力!
如果是这样,我将很快尝试一下。当然,这需要一些时间来全面测试。
nathank
(Nathan Kershaw)
19
[quote=“spirobel, post:17, topic:246395”]您需要本地运行 stripe cli 来转发 webhook 消息。这是要使用的命令:
stripe listen --forward-to http://localhost:4200/subscriptions/hooks --api-key y
[/quote]
我们应该在哪里运行它?是在服务器上以 root 身份运行,还是在 docker 容器内运行?我们是否应该在 /subscriptions/hooks 前使用我们的实例 URL?
另外,为了确保我做的事情是正确的,我们是安装这个而不是官方插件吗?
git clone https://github.com/spirobel/discourse-subscriptions -b "feature/rework-admin-page"
1 个赞
这仅对于在本地计算机上运行的开发实例是必需的。例如,您可以在视频中看到我的 discourse 实例运行在 localhost:4200 上,这意味着它在我的计算机上运行。
如果您想重现这个确切的环境,可以遵循本指南:
因为 stripe 服务器无法访问我本地网络上的 localhost:4200 地址,所以有必要运行此命令来中继来自 stripe 服务器的 webhook 请求。
如果您想在连接到互联网的服务器上尝试此操作,可以遵循官方教程的 webhook 配置:Discourse Subscriptions Plugin
请不要(现在)将其安装在已经包含实时客户数据和旧版 discourse subscriptions 插件的实例上。请在第二个暂存服务器上尝试,因为这两个版本会发生冲突。
非常感谢您的测试!它还将使尚未拥有帐户的访问者能够购买套餐。付款后,他们将被自动邀请加入 discourse 实例并获得相应的组成员资格。
2 个赞
nathank
(Nathan Kershaw)
21
我有一个相对不活跃的在线网站 (betterstreets.nz),只有 3 个客户(包括我自己),他们来自一个基本上失败的先前实验。我很乐意在那里进行测试,如果需要的话,可以移除之前的插件及其数据(尽管我需要一些关于正确 Rails 控制台命令的帮助)。在这种情况下,我是否仍然会遇到冲突?