Webhook là cơ chế một hệ thống gửi yêu cầu HTTP tới địa chỉ do bạn chỉ định ngay khi có sự kiện, ví dụ khách vừa thanh toán xong. Nhờ vậy hệ thống của bạn nhận tin tức tức thì mà không phải hỏi liên tục. Cần xác thực nguồn gửi và xử lý trùng lặp.
Một tình huống quen thuộc
Khách quét mã thanh toán cho đơn hàng trên website của bạn. Làm sao website biết đã thanh toán để chuyển đơn sang trạng thái đã trả tiền? Cách thứ nhất là cứ vài giây hỏi cổng thanh toán, tốn công và chậm. Cách thứ hai là để cổng thanh toán tự gọi vào một địa chỉ trên website của bạn khi có giao dịch. Cách thứ hai chính là webhook.
Cơ chế bên trong
- Bạn đăng ký với dịch vụ nguồn một địa chỉ URL của mình, kèm loại sự kiện muốn nhận.
- Khi sự kiện xảy ra, dịch vụ gửi một yêu cầu HTTP, thường là POST, mang dữ liệu sự kiện dạng JSON.
- Hệ thống của bạn nhận, kiểm tra tính hợp lệ rồi xử lý.
- Hệ thống của bạn trả mã trạng thái thành công, thường thuộc nhóm 2xx, để báo đã nhận.
- Nếu không phản hồi thành công, nhiều dịch vụ sẽ gửi lại sau một khoảng thời gian.
Ví dụ trong tự động hóa
- Cổng thanh toán báo giao dịch thành công, hệ thống đóng đơn và gửi hóa đơn.
- Biểu mẫu khách điền xong, dữ liệu vào bảng tính và thông báo cho nhân viên phụ trách.
- Đơn vị vận chuyển báo đã giao hàng, hệ thống cập nhật trạng thái và gửi tin cảm ơn.
- Kho mã nguồn như GitHub báo có thay đổi mới để kích hoạt kiểm thử hoặc triển khai.
- Công cụ như n8n cung cấp sẵn một nút nhận webhook để bắt đầu một luồng tự động.
Webhook và API chủ động hỏi
Hai cách này bổ sung cho nhau chứ không thay thế hoàn toàn.
| Tiêu chí | Webhook | Gọi API định kỳ |
|---|---|---|
| Độ trễ | Gần như tức thì | Phụ thuộc chu kỳ hỏi |
| Tài nguyên | Chỉ xử lý khi có sự kiện | Tốn lượt gọi cả khi không có gì mới |
| Độ tin cậy | Có thể mất tin nếu hệ thống nhận đang lỗi | Chủ động kiểm soát được việc hỏi lại |
| Phù hợp | Sự kiện cần phản ứng nhanh | Đối soát, lấy dữ liệu hàng loạt |
Những điều cần làm để chạy ổn định và an toàn
- Xác thực nguồn gửi: nhiều dịch vụ ký nội dung bằng một bí mật dùng chung (chữ ký HMAC) để bạn kiểm tra, như tài liệu webhook của Stripe và GitHub mô tả. Không kiểm tra thì ai cũng có thể giả mạo gọi vào.
- Phản hồi nhanh: trả 2xx sớm rồi xử lý nặng ở phía sau, tránh dịch vụ nguồn cho là lỗi và gửi lại.
- Chống xử lý trùng: sự kiện có thể đến nhiều lần, hãy dùng mã sự kiện để bỏ qua bản đã xử lý, tránh tạo hai hóa đơn.
- Dùng HTTPS và không đưa thông tin nhạy cảm thừa vào đường dẫn.
- Ghi nhật ký và có bước đối soát định kỳ bằng API để bắt các sự kiện bị lỡ.
Khi nào nên có người hỗ trợ
Webhook dính tới tiền, đơn hàng hoặc dữ liệu khách nên được thiết kế cẩn thận ngay từ đầu. Nếu bạn định nối các hệ thống kiểu này vào quy trình AI doanh nghiệp, hãy nhờ người có kinh nghiệm kiểm tra phần xác thực, chống trùng lặp và theo dõi lỗi trước khi chạy thật.
Khi thử webhook, hãy dùng công cụ nhận yêu cầu thử nghiệm của chính nhà cung cấp để gửi sự kiện mẫu, và cố ý gửi cùng một sự kiện hai lần xem hệ thống có xử lý trùng không.
Muốn đưa AI vào công việc của doanh nghiệp? Kỹ thuật viên PCTech hỗ trợ tại TP.HCM.
Câu hỏi thường gặp
Webhook khác API ở điểm nào?
API là bạn chủ động gọi sang hệ thống khác để hỏi hoặc yêu cầu việc. Webhook là hệ thống khác chủ động gọi vào địa chỉ của bạn khi có sự kiện. Cả hai thường dùng cùng nhau trong tích hợp.
Webhook bị mất thì làm sao?
Nhiều dịch vụ tự gửi lại khi bạn không phản hồi thành công. Để chắc chắn, hãy có thêm bước đối soát định kỳ bằng API lấy danh sách sự kiện hoặc giao dịch để bù những phần đã lỡ.
Có cần máy chủ riêng để nhận webhook không?
Cần một địa chỉ công khai chạy HTTPS để nhận yêu cầu. Có thể là website của bạn, một dịch vụ chạy hàm theo yêu cầu, hoặc nút nhận webhook của công cụ tự động hóa như n8n.
Làm sao biết webhook là thật, không phải giả mạo?
Kiểm tra chữ ký đi kèm yêu cầu bằng bí mật mà nhà cung cấp cấp cho bạn, so sánh với chữ ký tự tính từ nội dung nhận được. Chỉ xử lý khi chữ ký khớp.
Bài viết liên quan
- API là gì? Cách các phần mềm nói chuyện với nhau
- n8n là gì? Tự động hóa quy trình không cần code
- Zapier, Make và n8n: so sánh
- Tự động hóa chốt đơn và chăm sóc khách hàng
- Tự động hóa quy trình RPA là gì