Xử lý thông báo Webhook
Khi nhận được thông báo webhook, bạn cần xác thực thông báo và xử lý dữ liệu theo nhu cầu của mình.
Ví dụ
Dưới đây là một ví dụ về việc xử lý thông báo webhook bằng Node.js:
javascript
const express = require("express");
const bodyParser = require("body-parser");
const crypto = require("crypto");
const app = express();
app.use(bodyParser.json());
const WEBHOOK_SECRET = "your_webhook_secret";
app.post("/webhook", (req, res) => {
const signature = req.get("X-Xedu-Signature");
const timestamp = req.get("X-Xedu-Timestamp");
const payload = JSON.stringify(req.body);
const hmac = crypto
.createHmac(
"sha256",
`${process.env.WEBHOOK_SECRET}+${timestamp}+${payload}`
)
.update(payload)
.digest("hex");
if (signature !== hmac) {
return res.status(403).send("Invalid signature");
}
const event = req.body.event;
const data = req.body.data;
if (event === "order_status_updated") {
const orderId = data.order_id;
const status = data.status;
console.log(`Order ${orderId} is now ${status}`);
}
});