Skip to main content
Version: Next

Xác thực Webhook

Khi có giao dịch phát sinh, Tingee gửi Webhook (IPN) đến endpoint của đối tác. SDK cung cấp method verifyWebhookSignature() giúp xác thực chữ ký một cách đơn giản và an toàn.

Tại sao cần xác thực?

Header x-signature đảm bảo request đến từ Tingee, không phải từ bên thứ ba giả mạo. Luôn xác thực trước khi xử lý giao dịch.


Cách sử dụng

import express from 'express';
import { TingeeClient, isErrorResponse } from '@tingee/sdk-node';

const client = new TingeeClient({
secretKey: process.env.TINGEE_SECRET_KEY!,
clientId: process.env.TINGEE_CLIENT_ID!,
});

app.post('/webhook/tingee', express.json(), (req, res) => {
const result = client.verifyWebhookSignature(
req.headers['x-signature'] as string,
req.headers['x-request-timestamp'] as string,
req.body,
);

if (isErrorResponse(result)) {
return res.status(401).json({ error: result.message });
}

// <span class="status-badge ok" title="Bắt buộc">✓</span> Chữ ký hợp lệ — xử lý giao dịch
const { transactionCode, amount } = req.body;
// Cập nhật đơn hàng...

res.json({ received: true });
});

Chính sách Retry của Tingee

Nếu endpoint của đối tác không phản hồi trong vòng 10 giây (timeout), Tingee sẽ tự động gửi lại webhook.

Idempotency

Luôn dùng transactionId hoặc orderId để kiểm tra xem đơn hàng đã xử lý chưa, tránh trùng lặp khi nhận retry.


Xem thêm