File size: 881 Bytes
60faa09 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import { NextResponse } from "next/server";
import { getServerSession } from "next-auth/next";
import { authOptions } from "@/lib/auth";
import { BillingService } from "@/lib/services/billing";
export async function POST(req) {
try {
const session = await getServerSession(authOptions);
if (!session || !session.user) {
return NextResponse.json({ error: "Unauthorized. Please sign in." }, { status: 401 });
}
const { planId } = await req.json();
if (!planId) {
return NextResponse.json({ error: "Missing planId parameter" }, { status: 400 });
}
const checkoutUrl = await BillingService.createCheckoutSession(session.user.id, planId);
return NextResponse.json({ url: checkoutUrl });
} catch (error) {
console.error("Checkout route error:", error);
return NextResponse.json({ error: error.message }, { status: 500 });
}
}
|