b148fdb33c
Co-authored-by: wolfoftyreso-debug <250630591+wolfoftyreso-debug@users.noreply.github.com>
28 lines
971 B
TypeScript
28 lines
971 B
TypeScript
import { verifyWebhook, type StripeEnv } from "../_shared/stripe.ts";
|
|
|
|
Deno.serve(async (req) => {
|
|
if (req.method !== "POST") return new Response("Method not allowed", { status: 405 });
|
|
|
|
const rawEnv = new URL(req.url).searchParams.get("env");
|
|
if (rawEnv !== "sandbox" && rawEnv !== "live") {
|
|
return new Response(JSON.stringify({ received: true, ignored: "invalid env" }), {
|
|
status: 200,
|
|
headers: { "Content-Type": "application/json" },
|
|
});
|
|
}
|
|
const env: StripeEnv = rawEnv;
|
|
|
|
try {
|
|
const event = await verifyWebhook(req, env);
|
|
console.log(`[payments-webhook:${env}] ${event.type}`);
|
|
// Minimal handler — Stripe dashboard is source of truth for subscriptions.
|
|
return new Response(JSON.stringify({ received: true }), {
|
|
status: 200,
|
|
headers: { "Content-Type": "application/json" },
|
|
});
|
|
} catch (e) {
|
|
console.error("Webhook error:", e);
|
|
return new Response("Webhook error", { status: 400 });
|
|
}
|
|
});
|