Das sieht so aus, als wäre dein Webhook-Endpunkt nicht korrekt konfiguriert. Wenn die Abonnementperiode endet, sendet Stripe einen Webhook, den das Plugin verwendet, um die Gruppenmitgliedschaft zu entfernen und den Benutzer als bestehenden Kunden für dieses Produkt zu löschen (was es dem Benutzer ermöglicht, erneut zu kaufen).
Du musst sicherstellen, dass dies gemäß dem Originalbeitrag (OP) hier konfiguriert ist: Discourse Subscriptions
Eine Möglichkeit, dies von deinem Server aus zu überprüfen:
./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)
Ersetze <username> durch den tatsächlichen Benutzernamen.
Wenn subscription [] zurückgibt, liegt ein anderes Problem vor. Wenn jedoch ein Wert zurückgegeben wird, bestätigt dies wahrscheinlich den fehlenden Webhook.
Um den Eintrag DiscourseSubscriptions::Subscription zu löschen, damit der Benutzer das Produkt erneut kaufen kann:
Stelle sicher, dass subscription nur einen Wert hat, indem du subscription.count ausführst. Wenn der zurückgegebene Wert größer als 1 ist, musst du etwas mehr recherchieren, um sicherzustellen, dass du die richtige Abonnementinstanz löschst. Wenn du den falschen löschst, befinden sich deine Abonnementdaten in einem inkonsistenten Zustand, was wahrscheinlich zu seltsamem Verhalten führt.
Sobald du bestätigt hast, dass es nur ein Abonnement gibt, kannst du Folgendes ausführen:
subscription.destroy_all
Denke daran, dass subscription der Wert ist, der aus dem ursprünglichen Satz von Abfragen zurückgegeben wurde, die wir in der Rails-Konsole ausgeführt haben.
Hoffentlich hilft das!