diff --git a/crons/check-subscriptions.ts b/crons/check-subscriptions.ts index adeb747..bd47f00 100644 --- a/crons/check-subscriptions.ts +++ b/crons/check-subscriptions.ts @@ -30,6 +30,9 @@ async function checkSubscriptions() { user_id: subscription.customer.id, subscription_id: subscription.id, }; + } else if (matchingUser.subscription.external.stripe.subscription_id !== subscription.id) { + // Skip previous subscriptions + continue; } matchingUser.subscription.isMonthly = subscription.items.data.some((item) => item.price.id.includes('monthly')); diff --git a/pages/api/subscription.ts b/pages/api/subscription.ts index 7a65f85..a0cf8b7 100644 --- a/pages/api/subscription.ts +++ b/pages/api/subscription.ts @@ -15,10 +15,11 @@ export async function pageAction(request: Request) { const { user } = await validateUserAndSession(user_id, session_id); - if (provider === 'stripe') { + if (provider === 'stripe' && !user.subscription.external.stripe) { const subscriptions = await getStripeSubscriptions(); const subscription = subscriptions.find((subscription) => + subscription.status === 'active' && subscription.customer.email === user.email && subscription.items.data.some((item) => item.price.id.startsWith('budget-zen-')) );