move stripe product id to env var

This commit is contained in:
msukkari 2025-02-13 10:24:12 -08:00
parent 84e8ec2102
commit 0b4140f81c
3 changed files with 52 additions and 47 deletions

View file

@ -17,7 +17,7 @@ import { headers } from "next/headers"
import { stripe } from "@/lib/stripe"
import { getUser } from "@/data/user";
import { Session } from "next-auth";
import Stripe from "stripe";
import { STRIPE_PRODUCT_ID } from "@/lib/environment";
const ajv = new Ajv({
validateFormats: false,
@ -413,11 +413,8 @@ const parseConnectionConfig = (connectionType: string, config: string) => {
return parsedConfig;
}
export async function fetchStripeClientSecret(name: string, domain: string) {
const session = await auth();
if (!session) {
return "";
}
export const setupInitialStripeCustomer = async (name: string, domain: string) =>
withAuth(async (session) => {
const user = await getUser(session.user.id);
if (!user) {
return "";
@ -436,7 +433,7 @@ export async function fetchStripeClientSecret(name: string, domain: string) {
})
const prices = await stripe.prices.list({
product: 'prod_RkeYDKNFsZJROd',
product: STRIPE_PRODUCT_ID,
expand: ['data.product'],
});
const stripeSession = await stripe.checkout.sessions.create({
@ -462,7 +459,7 @@ export async function fetchStripeClientSecret(name: string, domain: string) {
})
return stripeSession.client_secret!;
}
});
export const getSubscriptionCheckoutRedirect = async (domain: string) =>
withAuth((session) =>
@ -489,7 +486,7 @@ export const getSubscriptionCheckoutRedirect = async (domain: string) =>
const origin = (await headers()).get('origin')
const prices = await stripe.prices.list({
product: 'prod_RkeYDKNFsZJROd',
product: STRIPE_PRODUCT_ID,
expand: ['data.product'],
});

View file

@ -13,7 +13,7 @@ import logoDark from "@/public/sb_logo_dark_large.png";
import logoLight from "@/public/sb_logo_light_large.png";
import Image from "next/image";
import { fetchStripeClientSecret } from "../../../actions"
import { setupInitialStripeCustomer } from "../../../actions"
import {
EmbeddedCheckout,
EmbeddedCheckoutProvider
@ -21,6 +21,7 @@ import {
import { loadStripe } from '@stripe/stripe-js'
import { useState } from "react";
import { OnboardingFormValues } from "./orgCreateForm";
import { isServiceError } from "@/lib/utils";
const stripePromise = loadStripe(process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY!)
@ -33,7 +34,13 @@ export function TrialCard({ orgCreateInfo }: { orgCreateInfo: OnboardingFormValu
<div id="checkout">
<EmbeddedCheckoutProvider
stripe={stripePromise}
options={{ fetchClientSecret: () => fetchStripeClientSecret(orgCreateInfo.name, orgCreateInfo.domain) }}
options={{ fetchClientSecret: async () => {
const clientSecret = await setupInitialStripeCustomer(orgCreateInfo.name, orgCreateInfo.domain);
if (isServiceError(clientSecret)) {
throw clientSecret;
}
return clientSecret;
} }}
>
<EmbeddedCheckout />
</EmbeddedCheckoutProvider>

View file

@ -15,3 +15,4 @@ export const AUTH_GOOGLE_CLIENT_SECRET = getEnv(process.env.AUTH_GOOGLE_CLIENT_S
export const AUTH_URL = getEnv(process.env.AUTH_URL)!;
export const STRIPE_SECRET_KEY = getEnv(process.env.STRIPE_SECRET_KEY);
export const STRIPE_PRODUCT_ID = getEnv(process.env.STRIPE_PRODUCT_ID);