diff --git a/ee/pages/api/integrations/stripepayment/callback.ts b/ee/pages/api/integrations/stripepayment/callback.ts index d07d35fe06..038238eb6d 100644 --- a/ee/pages/api/integrations/stripepayment/callback.ts +++ b/ee/pages/api/integrations/stripepayment/callback.ts @@ -1,5 +1,6 @@ import { Prisma } from "@prisma/client"; import type { NextApiRequest, NextApiResponse } from "next"; +import { stringify } from "querystring"; import stripe, { StripeData } from "@ee/lib/stripe/server"; @@ -7,7 +8,7 @@ import { getSession } from "@lib/auth"; import prisma from "@lib/prisma"; export default async function handler(req: NextApiRequest, res: NextApiResponse) { - const { code } = req.query; + const { code, error, error_description } = req.query; // Check that user is authenticated const session = await getSession({ req: req }); @@ -16,6 +17,12 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) return; } + if (error) { + const query = stringify({ error, error_description }); + res.redirect("/integrations?" + query); + return; + } + const response = await stripe.oauth.token({ grant_type: "authorization_code", code: code.toString(),