Fantastico. Grazie!
C’era un abbonamento.
Una correzione al tuo codice:
subs = ::Stripe::Subscription.list(customer: customer.stripe_customer_id, status: 'all')[:data]
Ci sono 100 piani (quindi probabilmente di più) - forse questo è il problema? (Ho provato con limit: 1000 ma non è cambiato nulla; immagino che sia un limite dell’API di Stripe?)
Quindi forse se ci sono >100 piani fallisce? Oh, e gli utenti per i quali non fallisce, sono su piani che sono nei primi 100.
discourse(prod)> plan = plans[:data].find { |p| p[:id] == price_id }
discourse(prod)>
=> nil
EDIT:
Sì. Se faccio questo:
# Ottieni l'ID dell'ultimo elemento
last_price_id = plans.data.last.id
# Ottieni i successivi 100
next_plans = ::Stripe::Price.list(
expand: ['data.product'],
limit: 100,
starting_after: last_price_id
)
allora
discourse(prod)> next_plans[:data].find { |p| p[:id] == price_id }
trova quello che sta cercando.
EDIT DI NUOVO: next_plans.count == 8. Ho suggerito che eliminassero 10 piani.