Hướng dẫn cấu hình webhook
Giới thiệu
Webhooks giúp bạn đăng ký lắng nghe các sự kiện phát sinh từ hệ thống của Dohana.
Ví dụ:
- Khi tạo video mới
- Khi xóa video
- Khi tạo đơn vị phân loại đơn vị vận chuyển
Bật webhooks
Đi đến màn webhook
Vào Danh sách ứng dụng , click vào tên ứng dụng để vào màn chi tiết
Điền thông tin webhook
- Tích chọn bật webhook
- Điền webhook callback URL (bắt buộc chạy https hoặc http với localhost, trả về HttpStatusCode 200 và chỉ hỗ trợ POST method)
- Điền Webhook verify key. Giá trị này là key của do bạn tự điền. Dohana sẽ gửi kèm header x-dhn-sign khi gửi webhook để bạn có thể xác minh dữ liệu từ Dohana gửi sang
- Chọn các sự kiện muốn đăng ký nhận webhook và nhấn Cập nhật.

💡
Chú ý: Bạn chỉ nên bật webhooks và điền Callback URL khi bạn đã có link này, không để link liên tục ở tình trạng lỗi (khác 200) để tránh bị tắt/khóa webhook
Nhận yêu cầu verify từ Dohana
Ngay khi bạn nhấn Cập nhật, chúng tôi sẽ thực hiện gửi API để verify Callback URL của bạn.
Lưu ý:
- API có timeout 5s
- API có retry 3 lần, mỗi lần cách nhau 1s nếu lỗi, nếu không webhook sẽ được đánh dấu không hoạt động
- API có event wh.enable
{
"event": "wh.enable",
"data": {
"events": ["video.create", "video.delete"]
}
}Nhận webhooks
Với mỗi sự kiện Dohana sẽ gửi đi một yêu cầu có Content-Type: application/json và Body là json string.
Các kiểu dữ liệu trong body.data được trình bày trong các phần sau:
Ví dụ một request như sau:
Danh sách events webhooks trả về
| Sự kiện | Mô tả |
|---|---|
| video.create | Khi video được tải lên và hoàn thành trên hệ thống |
| video.delete | Khi video được một người dùng/ nhân viên xóa khỏi hệ thống |
| video.error | Ghi lại danh sách video lỗi trên hệ thống |
| dvvc.create | Khi bạn/ nhân viên tạo phân loại đơn vị vận chuyển |
Lưu ý về webhooks response
- Hệ thống của bạn cần trả về HttpStatusCode = 200 để Dohana có thể xác nhận bạn đã xử lý thành công
- Nếu hệ thống của bạn xử lý webhooks với tỉ lệ thành công thấp hoặc lỗi 25 lần liên tiếp Dohana sẽ có thể:
- Tắt webhook của bạn: Đánh dấu là Verify Fail và bạn phải Cập nhật lại để webhooks có thể hoạt động lại.
- Đặt độ ưu tiên webhook của bạn thấp đi. Chúng tôi có thang đánh giá từ 0-100 đối với độ ưu tiên webhooks, URL của bạn càng lỗi thì độ ưu tiên càng thấp
Lỗi thường gặp
Connection timeout
Chúng tôi để thời gian timeout mặc định khá ngắn (3s), nếu API của bạn quá lâu thì có thể dẫn đến khóa webhooks hoặc giảm độ ưu tiên.
Last updated on