2
0

🔧 (billing) New checkout session should work with existi…

This commit is contained in:
Baptiste Arnaud
2024-06-27 12:09:54 +02:00
parent 99eae33187
commit cb0987e41c

View File

@ -74,14 +74,28 @@ export const createCheckoutSession = async ({
},
})
const customer = await stripe.customers.create({
const existingCustomer = await stripe.customers.list({
email,
})
if (existingCustomer && email !== existingCustomer.data[0].email)
throw new TRPCError({
code: 'BAD_REQUEST',
message: 'Make sure to log in with the same email as the one provided',
})
const customerData = {
email,
name: company,
metadata: { workspaceId },
tax_id_data: vat
? [vat as Stripe.CustomerCreateParams.TaxIdDatum]
: undefined,
})
}
const customer =
existingCustomer.data.length > 0
? await stripe.customers.update(existingCustomer.data[0].id, customerData)
: await stripe.customers.create(customerData)
const checkoutUrl = await createCheckoutSessionUrl(stripe)({
customerId: customer.id,