import Stripe from "stripe"; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { apiVersion: "2024-06-20" }); export async function handler(event) { if (event.httpMethod !== "POST") return { statusCode: 405, body: "Method Not Allowed" }; try { const { priceId = process.env.PRICE_ID_ONE_TIME, quantity = 1, mode = "payment", metadata } = JSON.parse(event.body || "{}"); const session = await stripe.checkout.sessions.create({ mode, line_items: [{ price: priceId, quantity }], success_url: `${process.env.DOMAIN}/donate-success.html?session_id={CHECKOUT_SESSION_ID}`, cancel_url: `${process.env.DOMAIN}/donate-cancel.html`, billing_address_collection: "auto", allow_promotion_codes: true, metadata }); return { statusCode: 200, body: JSON.stringify({ url: session.url }) }; } catch (err) { return { statusCode: 500, body: JSON.stringify({ error: err.message }) }; } }