在使用 Stripe 的定价表配合 Subscriptions 插件时,是否仍然可以将订阅者添加到用户组?
我已切换到使用 Stripe 的定价表来列出我的产品,而不是使用 Subscriptions 插件。订阅者不再被添加到我指定的用户组(针对原始 Discourse 创建的订阅,因为它们已添加到我的定价表中)。我在 Stripe 中创建的新产品也没有出现在 Discourse 订阅插件中,尽管我以为在我切换到定价表之前它们是这样的。
这是预期行为,还是我弄坏了什么?
如果这是预期行为,我是否可以帮助在插件指南中添加一行,以强调切换到定价表的后果?
我将深入研究有关 webhook 和集成的建议,但任何关于如何自动化将订阅者添加到用户组的提示都将不胜感激 
谢谢
1 个赞
blake
(Blake Erickson)
2
可以,但您需要确保产品是从 Discourse 创建的,而不是从 Stripe 创建的。
先在 Discourse 中创建产品:
在 Discourse 中创建产品后,您将为其创建一个计划,其中指定价格和组:
然后,在 Stripe 中创建定价表时,必须仅选择从 Discourse 创建的产品:
然后,当用户订阅时,他们将被添加到所选组中:
2 个赞
pfaffman
(Jay Pfaffman)
3
如果您有并非使用 Discourse 创建但希望 Discourse 了解的内容(并且您是自托管的),可以尝试 rake subscriptions:subscriptions_import。
2 个赞
感谢您提供的详细回复,@blake!我将在 Discourse 中设置产品和计划,并在测试后将此标记为解决方案。
看起来优惠券和促销代码可以在 Stripe 和 Discourse 之间顺利转移。我的最终测试是,在我向 Stripe 中的产品添加描述和营销功能(以填充定价表)后,集成是否仍然正常运行。
2 个赞
有人在周末购买了我的 Discourse 创建的产品+套餐,但没有被添加到我指定的组中。因此,在 Discourse 中创建产品+套餐后在 Stripe 中进行编辑似乎会破坏此集成。
我也亲自测试了这一点,购买了订阅,但没有被添加到指定的组中。
如果有人能就如何进一步测试以找出问题所在提出建议,我将不胜感激。
我还会研究其他将 Stripe 付款与 Discourse 集成的方法。
1 个赞
blake
(Blake Erickson)
7
抱歉,这仍然无法正常工作 
很高兴你提到了这一点,我认为一次性付款可能存在单独的问题。我刚刚在本地进行了测试,发现 webhook 调用存在错误,这很可能导致用户未被添加到组中或交易未显示在用户的账单页面上。
我会看看是否能找到一个代码修复方案,以便将来的交易能够正常工作。
2 个赞
blake
(Blake Erickson)
8
好的,我已经为这个问题创建了一个代码修复。如果您将订阅插件更新到最新版本,它应该可以处理所有新的单次付款和定价表。
2 个赞
太棒了! 感谢您快速修复 
我将自己测试并与客户一起测试,一旦确信它能按预期工作,就将其标记为解决方案。
1 个赞
抱歉,我不得不报告您的代码修复未能解决问题。自更新以来,已有两名客户的四笔购买,但均未添加到组中。我也无法在他们的账单页面上看到任何付款或订阅。
我相信代码修复确实改变了一件事——自更新订阅插件以来我在 Discourse 中创建的产品在 Stripe 中被标记为元数据 repurchaseable: false。但是,在代码修复之前创建的产品没有添加该元数据(它已被购买)。
请告知我如何帮助诊断此问题!
blake
(Blake Erickson)
12
首先恭喜您获得了如此多的注册用户,这很棒!很抱歉订阅插件仍然无法正常工作。在我的本地设置中,用户注册后会被添加到组中,所以我知道这是可行的。我会做进一步的调查,然后给您发私信询问您设置的一些细节,以便我们能彻底解决这个问题。
2 个赞
blake
(Blake Erickson)
13
好的,我在设置的生产环境中复现了您的问题,用于测试插件。我知道要修复的第一件事是为现有的 webhook 添加 checkout.session.completed 作为事件。
如果缺少这个事件,Stripe 将不会将定价表结账信息发送到 Discourse。
您只需要做这些,但我可能还需要进行另一项代码修复,目前我正在研究中。
2 个赞
marpoe
(Marc)
14
Blake,您好:
我遇到了同样的问题。在 Stripe 中显示购买成功后,用户更新不起作用:
希望您能帮忙!
提前非常感谢!
1 个赞
感谢你进一步调查,Blake。我已经更新了我的 Stripe 网页钩子以添加 checkout.session.completed。
有成功或失败的消息时我会回来!
自我提醒 - 在 https://dashboard.stripe.com/webhooks/ 找到网页钩子。我几年前首次安装了Subscriptions插件,所以对设置有点生疏……
Stripe 告诉我过去 15 天内没有收到任何 webhook 尝试,所以显然通信 somewhere 存在阻塞。
blake
(Blake Erickson)
17
在您的 Webhooks 页面上,您是否有类似 https://your-discourse-site/s/hooks 的 URL?
此外,您还需要确保 Webhook 的签名密钥与 Discourse 中的设置匹配:
我不确定这是个问题是问我还是问 @marpoe ,但是的——我在 Stripe 中设置了正确的 Discourse URL,并在 Discourse 中设置了正确的 Stripe 密钥。我知道 webhook 大部分 都能正常工作,因为当我尝试在 Discourse 中设置产品和套餐时,Stripe 会创建它们 
添加 checkout.session.completed 事件到 webhook 有效! 
我刚进行了一次测试购买,我的用户已成功添加到群组
感谢您抽出宝贵时间思考并修复了此一次性付款的 bug
3 个赞
system
(system)
关闭
21
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.