Круто. Спасибо!
Была одна подписка.
Одно исправление в вашем коде:
subs = ::Stripe::Subscription.list(customer: customer.stripe_customer_id, status: 'all')[:data]
У вас 100 тарифов (а вероятно, и больше) — возможно, в этом проблема? (Я пробовал указывать limit: 1000, но это ничего не изменило; полагаю, это ограничение API Stripe?)
Возможно, если тарифов больше 100, происходит сбой? Кстати, пользователи, у которых всё работает, находятся на тарифах из первых 100.
discourse(prod)> plan = plans[:data].find { |p| p[:id] == price_id }
discourse(prod)>
=> nil
РЕДАКТИРОВАНИЕ:
Да. Если я делаю так:
# Получаем ID последнего элемента
last_price_id = plans.data.last.id
# Получаем следующие 100
next_plans = ::Stripe::Price.list(
expand: ['data.product'],
limit: 100,
starting_after: last_price_id
)
то
discourse(prod)> next_plans[:data].find { |p| p[:id] == price_id }
находит то, что нужно.
РЕДАКТИРОВАНИЕ ЕЩЁ РАЗ: next_plans.count == 8. Я предложил им удалить 10 тарифов.