import express from "express";
import path from "path";
import ModemPay from "modem-pay";
const modem = new ModemPay(
"sk_test_516aa853e1574295ed778eadc82b0a7128b18b628e4059f82e77041adf8692cb"
);
const app = express();
app.use(express.json());
app.use(express.static(path.join(__dirname, "public")));
const YOUR_DOMAIN = "http://localhost:7024";
app.post("/create-checkout-session", async (req, res) => {
const session = await modempay.sessions.create({
amount: 2000,
title: "Stubborn Attachments",
redirect_url: `${YOUR_DOMAIN}/success.html`,
cancel_url: `${YOUR_DOMAIN}/cancel.html`,
});
res.redirect(303, session.payment_link);
});
app.post('/verify', async (req, res) => {
const payload = req.body;
const signature = req.headers["x-modem-signature"];
const secret = process.env.MODEM_WEBHOOK_SECRET;
try {
const event = modempay.webhooks.composeEventDetails(payload, signature, secret);
// Process the event
res.status(200).send("Webhook processed!");
} catch (error) {
res.status(400).send("Invalid signature!");
}
})
app.listen(7024, () => console.log("Running on port 7024"));