Skip to content

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}`);
  }
});