Hướng dẫn verify signature
Sử dụng Open API SDK
Để xác thực Signature của sự kiện, bạn có thể gọi hàm generateSignature
như code mẫu bên dưới:
Code demo fallback when rendering server side!
thông tin
Xem hướng dẫn lấy API key tại đây
Nếu bạn là đối tác giải pháp, API key là Partner API Key mà chúng tôi đã cung cấp khi bạn đăng ký đối giác giải pháp.
Sau đó so sánh signature được build ra với signature trong header:
Code demo fallback when rendering server side!
Không sử dụng Open API SDK
Trong trường hợp server tích hơp Webhook không có sẵn SDK, bạn có thể tự build signature từ data theo hướng dẫn sau:
- Lấy tất cả danh sách fields dữ liệu trong data bạn nhận được sắp theo thứ tự Alphabet (A - Z)
- Build chuỗi content các giá trị theo thứ tự fields vừa sắp xếp được
- Signature được tính theo hàm hash sha256(content + API Key). Vui lòng tham khảo code mẫu bên dưới.
Code mẫu:
function generateSignature(data, apiKey) {
const keys = Object.keys(data).sort();
let content = "";
for (let k of keys) {
let value = data[k];
if (typeof value == "object") {
value = JSON.stringify(value);
}
content += value;
}
const signature = crypto
.createHash("sha256")
.update(`${content}${apiKey}`)
.digest("hex");
return signature;
}