带有定价表的订阅 - 未找到客户的响应

大家好!我遇到了一个问题,已经困扰了我几天,但一直没有成功,所以希望这里有人能帮帮我 :slight_smile:

Discourse 3.4.0.beta1-dev
Subscriptions 2.8.1 - f0b4984
Docker 安装在 Linux VM 上

我已经安装并激活了 subscriptions 插件,并且在使用内置定价表时,它 大多数 时候都能正常工作(偶尔用户在订阅后不会被添加到组中,但这可能是另一个问题)。

然而,我真的需要使用 Stripe 定价表和结账,以获得熟悉的 UX 和它带来的信任。为此,我已经为 Webhook 设置好了一切,并配置了所有密钥等(目前使用测试模式,所以使用测试模式的密钥和秘密)。

我可以成功地访问订阅页面,通过定价表的结账流程,并使用测试卡进行结账。

然而,这导致 Discourse 中没有创建订阅,用户组也没有任何变化。查看 Stripe 仪表板中的 Webhook,我看到它们收到了 422 响应,响应体为:

{
  "errors": [
    "customer not found"
  ]
}

我已经尝试过几个不同的用户,结果总是相同的。

查看数据库,我没有在 discourse_subscriptions_customers 表中看到 Stripe Webhook 中提到的客户,也没有在 discourse_subscriptions_subscriptions 表中看到相应的订阅 - 我猜这可能是预期的,因为 Webhook 调用从未被处理过?

顺便说一句,我已经验证了 Stripe Webhook 调用 通常 可以成功 - 如果我禁用了“使用 Stripe 定价表”设置,并通过内置结账创建订阅,那么一切都很好 - 如果我之后从 Stripe 取消订阅,那么 customer.subscription.deleted Webhook 会正常通过。

希望是我自己做了一些傻事,设置不正确,但我真的很难弄清楚需要做什么才能让它工作。

提前感谢!
Ross

1 个赞

抱歉,您遇到了问题,但感谢您提出此事。希望我们能弄清楚是怎么回事。我的第一个问题是,您为定价表选择的产品是您在 Discourse 中创建的,还是在 Stripe 中创建的?

我在我设置的生产环境中也遇到了同样的错误,但在本地没有,所以调试起来有点困难。我正在查看!

感谢您的回复 :slight_smile:

我尝试了两种方式,最初我在 Stripe 中设置了产品,然后在论坛中发现有帖子建议需要在 Discourse 中创建产品,所以我改成了这样做。但是,我仍然看到同样的问题。

我_假设_(如果不对,请原谅)链接到组是由产品元数据驱动的?我在这里看到了:

group_name 根据价格等级而变化,这正是我期望的,基于我在 Discourse 中的设置方式)。

感谢您对此进行调查,如果我还能做些什么来提供帮助,请告诉我 :slight_smile:

我已经为客户未找到响应和定价表创建了一个修复程序。如果您更新订阅插件并重试,现在应该可以正常工作了。

2 个赞

抱歉这么晚才回复您,再次感谢您的关注 :slight_smile:

我刚刚更新了所有内容并进行了快速测试,但仍然看到 Stripe 网页钩子返回相同的响应(即找不到客户)。

您认为我是否应该创建一个全新的定价表/产品集并用它进行测试,以排除之前测试可能遗留的任何问题(我确实为此测试使用了一个新用户,但产品是之前就存在的)。

您能否再次确认“/admin/plugins”页面上版本号下方的提交哈希值?

这是订阅还是带定价表的单次购买?

我确实为订阅插件添加了一个新的调试设置。它被称为 discourse_subscriptions_enable_verbose_logging。启用后,您可以访问 /logs 并再次尝试结账流程,看看是否有任何输出。如果您愿意,可以私信我一些截图,我可以帮助您进一步调试。

好的,没问题。我有的提交哈希与您截图中的相同,是 f1b9c96 :slight_smile:

这是关于订阅的,带有定价表。

好的,太棒了,谢谢。我会尝试启用该设置并查看日志 :slight_smile:

再次感谢您的帮助 :slight_smile:

2 个赞