feat: add Stripe pricing IDs to configuration and update plan price retrieval
This commit is contained in:
parent
c481f2c577
commit
e73268ab31
2 changed files with 12 additions and 6 deletions
|
|
@ -12,6 +12,9 @@ export interface AppConfig {
|
|||
STREAM_CHAT_API_SECRET: string;
|
||||
STRIPE_SECRET_KEY: string;
|
||||
STRIPE_WEBHOOK_SECRET: string;
|
||||
STRIPE_SOLO_PRICE_ID: string;
|
||||
STRIPE_TEAM_MONTHLY_PRICE_ID: string;
|
||||
STRIPE_FOUNDER_PRICE_ID: string;
|
||||
EMAIL_USER: string;
|
||||
EMAIL_CLIENT_ID: string;
|
||||
EMAIL_CLIENT_SECRET: string;
|
||||
|
|
@ -88,6 +91,9 @@ export function createConfig(secrets?: Secrets): AppConfig {
|
|||
STRIPE_WEBHOOK_SECRET: isTestMode
|
||||
? validateEnvVar("STRIPE_WEBHOOK_SECRET", process.env.STRIPE_WEBHOOK_SECRET)
|
||||
: getStripeWebhookSecret(isStagingMode),
|
||||
STRIPE_SOLO_PRICE_ID: validateEnvVar("STRIPE_SOLO_PRICE_ID", process.env.STRIPE_SOLO_PRICE_ID),
|
||||
STRIPE_TEAM_MONTHLY_PRICE_ID: validateEnvVar("STRIPE_TEAM_MONTHLY_PRICE_ID", process.env.STRIPE_TEAM_MONTHLY_PRICE_ID),
|
||||
STRIPE_FOUNDER_PRICE_ID: validateEnvVar("STRIPE_FOUNDER_PRICE_ID", process.env.STRIPE_FOUNDER_PRICE_ID),
|
||||
EMAIL_USER: validateEnvVar("EMAIL_USER", process.env.EMAIL_USER),
|
||||
EMAIL_CLIENT_ID: validateEnvVar("EMAIL_CLIENT_ID", process.env.EMAIL_CLIENT_ID),
|
||||
EMAIL_CLIENT_SECRET: isTestMode
|
||||
|
|
|
|||
|
|
@ -77,16 +77,16 @@ const isInfinitePrice = (price: StripePriceRow): boolean => {
|
|||
);
|
||||
};
|
||||
|
||||
const getPlanPriceId = (plan: CheckoutPlan): string | null => {
|
||||
const getPlanPriceId = (config: AppConfig, plan: CheckoutPlan): string | null => {
|
||||
if (plan === "solo") {
|
||||
return process.env.STRIPE_SOLO_PRICE_ID ?? null;
|
||||
return config.STRIPE_SOLO_PRICE_ID ?? null;
|
||||
}
|
||||
|
||||
if (plan === "team") {
|
||||
return process.env.STRIPE_TEAM_MONTHLY_PRICE_ID ?? null;
|
||||
return config.STRIPE_TEAM_MONTHLY_PRICE_ID ?? null;
|
||||
}
|
||||
|
||||
return process.env.STRIPE_FOUNDER_PRICE_ID ?? null;
|
||||
return config.STRIPE_FOUNDER_PRICE_ID ?? null;
|
||||
};
|
||||
|
||||
const findStripeCustomerByUserId = async (
|
||||
|
|
@ -244,7 +244,7 @@ const createCheckoutSession = (
|
|||
let quantity = 1;
|
||||
|
||||
if (plan) {
|
||||
priceId = getPlanPriceId(plan);
|
||||
priceId = getPlanPriceId(config, plan);
|
||||
if (!priceId) {
|
||||
return c.json({ error: `Missing Stripe price configuration for plan: ${plan}` }, 500);
|
||||
}
|
||||
|
|
@ -253,7 +253,7 @@ const createCheckoutSession = (
|
|||
quantity = Math.max(1, ownerContext.billingState.member_count);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!priceId) {
|
||||
return c.json({ error: "priceId is required" }, 400);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue