这看起来可能是您的 webhook 端点配置不当。当订阅期结束时,Stripe 会发送一个 webhook,插件会利用它来移除群组会员资格,并将该用户从该产品的现有客户列表中移除(从而允许用户再次购买)。
您需要按照此处 Discourse 订阅 的原帖说明进行配置。
一种从服务器确认的方法:
./launcher enter app
rails c
u = User.find_by_username(<username>)
c = DiscourseSubscriptions::Customer.where(user_id: u.id)
subscription = DiscourseSubscriptions::Subscription.where(customer_id: c.customer_id)
请务必将 <username> 替换为实际的用户名。
如果 subscription 返回 [],则说明存在其他问题。但如果它返回了某个值,这很可能证实了 webhook 缺失的问题。
若要删除 DiscourseSubscriptions::Subscription 条目,以便用户可以再次购买该产品:
先运行 subscription.count,确保 subscription 只包含一个值。如果返回的值大于 1,您需要进一步排查,以确保删除的是正确的订阅实例。如果删除了错误的条目,您的订阅数据将处于不一致状态,并可能导致异常行为。
一旦确认只有一个订阅,即可运行:
subscription.destroy_all
请注意,subscription 是我们在 Rails 控制台中执行初始查询后返回的值。
希望这能帮到您!