stripe setup

im using the stripe plugin and i have 2 plans on stripe: pro and enterprise. when i upgrade from free to pro its working fine and i see pro in the db. but when i upgrade my sub from pro to enterprise
const upgradeParams = {
plan: plan.name,
successUrl: `${process.env.NEXT_PUBLIC_APP_URL}/dashboard`,
cancelUrl: `${process.env.NEXT_PUBLIC_APP_URL}/pricing`,
...(currentPlan?.stripeSubscriptionId && {
subscriptionId: currentPlan.id,
}),
};

try {
const { data, error } = await subscription.upgrade(upgradeParams);

if (error) console.log(error);
} catch (error) {
console.log(error);
}
const upgradeParams = {
plan: plan.name,
successUrl: `${process.env.NEXT_PUBLIC_APP_URL}/dashboard`,
cancelUrl: `${process.env.NEXT_PUBLIC_APP_URL}/pricing`,
...(currentPlan?.stripeSubscriptionId && {
subscriptionId: currentPlan.id,
}),
};

try {
const { data, error } = await subscription.upgrade(upgradeParams);

if (error) console.log(error);
} catch (error) {
console.log(error);
}
I still see pro in the db. am I doing something wrong, or is it supposed to work like that?
9 Replies
Ping
Ping4w ago
You're not getting an error or anything like that?
Karl
KarlOP4w ago
no and it updates correctly in stripe, but its not updated in the db could this be a library related bug?
Ping
Ping4w ago
can I see ur auth config?
Karl
KarlOP4w ago
import { stripe } from "@better-auth/stripe";
import { betterAuth } from "better-auth";
import { prismaAdapter } from "better-auth/adapters/prisma";
import { prisma } from "./prisma";
import { stripeClient } from "./stripe";

export const auth = betterAuth({
trustedOrigins: ["http://localhost:3000"],
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
socialProviders: {
discord: {
clientId: process.env.DISCORD_CLIENT_ID as string,
clientSecret: process.env.DISCORD_CLIENT_SECRET as string,
scope: ["identify", "email", "guilds"],
},
},
plugins: [
stripe({
stripeClient,
stripeWebhookSecret: process.env.STRIPE_WEBHOOK_SECRET!,
createCustomerOnSignUp: true,
subscription: {
enabled: true,
plans: [
{
name: "pro",
priceId: "price_1S9vhDGrrr5KPQqZuNaxs6SJ",
annualDiscountPriceId: "price_1SAJS8Grrr5KPQqZYM1snG4s",
limits: {
servers: 2,
},
},
{
name: "enterprise",
priceId: "price_1S9vhPGrrr5KPQqZ2LCxChat",
annualDiscountPriceId: "price_1SAJREGrrr5KPQqZMcTc8YbW",
limits: {
servers: 6,
},
},
],
},
}),
],
});
import { stripe } from "@better-auth/stripe";
import { betterAuth } from "better-auth";
import { prismaAdapter } from "better-auth/adapters/prisma";
import { prisma } from "./prisma";
import { stripeClient } from "./stripe";

export const auth = betterAuth({
trustedOrigins: ["http://localhost:3000"],
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
socialProviders: {
discord: {
clientId: process.env.DISCORD_CLIENT_ID as string,
clientSecret: process.env.DISCORD_CLIENT_SECRET as string,
scope: ["identify", "email", "guilds"],
},
},
plugins: [
stripe({
stripeClient,
stripeWebhookSecret: process.env.STRIPE_WEBHOOK_SECRET!,
createCustomerOnSignUp: true,
subscription: {
enabled: true,
plans: [
{
name: "pro",
priceId: "price_1S9vhDGrrr5KPQqZuNaxs6SJ",
annualDiscountPriceId: "price_1SAJS8Grrr5KPQqZYM1snG4s",
limits: {
servers: 2,
},
},
{
name: "enterprise",
priceId: "price_1S9vhPGrrr5KPQqZ2LCxChat",
annualDiscountPriceId: "price_1SAJREGrrr5KPQqZMcTc8YbW",
limits: {
servers: 6,
},
},
],
},
}),
],
});
tried everything cant figure it out
BABYBOI
BABYBOI4w ago
i have this same issue did you figure it out?
Karl
KarlOP4w ago
nope
BABYBOI
BABYBOI4w ago
damn are other people experiencing cuz it feels like just me and you tbh
Karl
KarlOP4w ago
buuump
notlongfen
notlongfen2w ago
for my case i have to create a webhook route to listen for event and update the db myself

Did you find this page helpful?