Problem mit 500-Fehler bei Abonnements

Ich gehe davon aus, dass dies nur für diese eine Website gilt? Sie sehen dies nicht auf anderen Websites? Ja, es gibt einen “Bug”, bei dem wir keine 500 zurückgeben sollten, aber es gibt wahrscheinlich einige “schlechte” Daten irgendwo, wie z. B. einen fehlenden Plan oder so etwas. Vielleicht wurde er in Stripe entfernt und nie in der Plugin-Datenbank aktualisiert.

Können Sie diese Rails-Konsolenbefehle ausführen, um mir bei der Fehlersuche zu helfen?

Stripe.api_key = SiteSetting.discourse_subscriptions_secret_key
user = User.find_by(username: 'xxx')
customer = DiscourseSubscriptions::Customer.find_by(user_id: user.id)
subs = ::Stripe::Subscription.list(customer: stripe_customer_id, status: 'all')[:data]
subs.count # wie viele Abonnements sie haben
subscription = subs.first # ändern Sie dies und führen Sie die folgenden Zeilen für jedes Abo aus
price_id = subscription[:items][:data].first[:price][:id]
plans = ::Stripe::Price.list(expand: ['data.product'], limit: 100)
plan = plans[:data].find { |p| p[:id] == price_id }
plan

Ich denke, entweder plans oder plan wird nil zurückgeben, aber das wird uns helfen, einzugrenzen, wo das Problem liegt. Könnten Sie mir bitte mitteilen, wie viele Abonnements sie haben und ob für sie fehlende Pläne vorhanden sind?

Wahrscheinlich werde ich eine Codekorrektur vornehmen, die darin besteht, für diese Benutzer keine Abonnements zurückzugeben, wenn ein Fehler auftritt, aber wenn sie tatsächlich ein Abonnement haben, löst dies das Problem nicht wirklich. Vielleicht gebe ich eine Fehlermeldung zurück, die besagt, dass ein Abonnement gefunden wurde, aber beim Laden der Plan-Details dafür ein Fehler aufgetreten ist. Bitte wenden Sie sich für Hilfe an einen Administrator.