import { createRequire } from 'module'; const require = createRequire(import.meta.url); import crypto from 'crypto' const querystring = require('node:querystring'); export const handler = async (event) => { console.log(JSON.stringify(event, null, 2)); const body = event["body"]; if(!isValidSignature(body, event.headers["X-Hub-Signature-256"])) { console.log("is not valid") return { statusCode: 200, body: "is not valid", }; } const parsedQuery = querystring.parse(body); const payload = JSON.parse(parsedQuery.payload) console.log(payload); const response = { statusCode: 200, body: "ok", }; return response; }; function isValidSignature(body, signature) { const hmac = crypto.createHmac('sha256', process.env.WEBHOOK_SECRET) hmac.update(body, 'utf8') const checkSignature = `sha256=${hmac.digest('hex')}` console.log(`${checkSignature} === ${signature}`) return checkSignature === signature }