Cool. Danke!
Es gab ein Abonnement.
Eine Korrektur an Ihrem Code:
subs = ::Stripe::Subscription.list(customer: customer.stripe_customer_id, status: 'all')[:data]
Es gibt 100 Pläne (also wahrscheinlich mehr) – vielleicht ist das das Problem? (Ich habe es mit limit: 1000 versucht, aber das hat nichts geändert; ich schätze, das ist ein Stripe API-Limit?)
Also schlägt es vielleicht fehl, wenn es mehr als 100 Pläne gibt? Oh, und die Benutzer, bei denen es nicht fehlschlägt, haben Pläne, die unter den ersten 100 sind.
discourse(prod)> plan = plans[:data].find { |p| p[:id] == price_id }
discourse(prod)>
=> nil
EDIT:
Ja. Wenn ich das mache:
# Holen Sie sich die ID des letzten Elements
last_price_id = plans.data.last.id
# Holen Sie sich die nächsten 100
next_plans = ::Stripe::Price.list(
expand: ['data.product'],
limit: 100,
starting_after: last_price_id
)
dann findet
discourse(prod)> next_plans[:data].find { |p| p[:id] == price_id }
das Gesuchte.
NOCHMALS EDITIERT: next_plans.count == 8. Ich habe vorgeschlagen, dass sie 10 Pläne löschen.