Giới thiệu về Webhook
Mobio sẽ gửi các request http (method POST) đến webhook url của ứng dụng khi có tương tác từ người dùng hoặc các thay đổi liên quan đến dữ liệu người dùng. Các sự kiện webhook được gửi dưới dạng các yêu cầu POST đến webhook đã đăng ký trong trang cài đặt ứng dụng của bạn.
Thiết lập Webhook
Nhà phát triển tạo ứng dụng và cung cấp URL webhook do nhà phát triển tạo thông qua cài đặt trên Mobio.
Mobio sẽ cố gắng xác minh webhook của bạn còn online hay không bằng cách gửi yêu cầu GET đến URL webhook.
Nếu webhook không phản hồi thì Mobio sẽ thông báo bằng email theo thông tin trên ứng dụng, nếu webhook không phản hồi liên tục trong 1 giờ thì ứng dụng của nhà phát triển sẽ bị ngừng nhận tin từ Mobio cho tới khi webhook phản hồi trở lại.
Yêu cầu hiệu suất cho webhook:
- Phản hồi tất cả sự kiện webhook với http status code = 200 OK.
- Phản hồi tất cả sự kiện webhook tối đa 100ms.
Nếu webhook của bạn không đáp ứng được bất kỳ yêu cầu nào ở trên thì sẽ nhận được thông báo webhook không hoạt động gửi về email theo thông tin trên ứng dụng.
Mobio hỗ trợ gửi lại sự kiện về địa chỉ webhook đã đăng ký đối với những sự kiện gửi không thành công (Không mở được connection tới webhook url)
- Mobio sẽ liên tục gửi lại trong khoảng thời gian là 1 giờ cho tới khi bạn nhận được. Tần suất gửi lại sự kiện theo cách tính số fibonacci với lần đầu tiên là 5 phút sau khi có thông báo đầu tiên về sự cố webhook.
- Bạn cần xử lý để webhook hoạt động lại trong khoảng thời gian sự kiện được gửi lại. Nếu webhook của bạn tiếp tục không đáp ứng được yêu cầu trong khoảng thời gian đó, bạn sẽ nhận được thông báo webhook đã bị vô hiệu hóa nhận các sự kiện webhook.
- Sau khi khắc phục sự cố với webhook. Bạn cần xin lại quyền nhận sự kiện trong trang cài đặt của ứng dụng.
Xác thực sự kiện webhook
Webhook đã gửi sẽ chứa Tiêu đề HTTP X-mevent-signature trên header cùng với chữ ký SHA256 của phần tải dữ liệu. Máy chủ có thể sử dụng thông tin này để bỏ qua những webhook không chứa chữ ký mong muốn, cũng như bỏ qua những cuộc tấn công theo cách chèn webhook.
Chữ ký được tính bằng phương pháp băm dữ liệu webhook cùng với id ứng dụng và secret key của ứng dụng. Điểm cuối gọi lại của bạn có thể xác minh chữ ký này để xác thực tính toàn vẹn và nguồn gốc Ứng dụng của phần tải dữ liệu.
Cấu trúc dữ liệu chung
Ví dụ
{
"merchant_id": "02e2261e-c879-4229-9bf2-bc269be3f1f3",
"block_event": [{...}],
"request_id": "4a9f6012-5627-4239-b281-4adb85c00827",
"version": 1,
"timestamp": 15503500848
"app_id": "8563bdcc-d36c-460f-850b-35927d689d56",
}
Mô tả thuộc tính
Thuộc tính | Mô tả |
merchant_id | Id Merchant trên hệ thống Mobio |
request_id | id lần gọi url webhook |
version | phiên bản mẫu dữ liệu |
app_id | id ứng dụng |
timestamp | Thời điểm request được gửi, tính bằng giây. |
block_event | danh sách dữ liệu trong lần request đó, tối đa 50 phần tử. VD: [ { “message_id”: “03f5b371-6d3a-40c6-9375-fefe5863ab92”, “data_event”: {…}, “event_type”: “” } ] message_id: id event. event_type: key xác định loại event. data_event: dữ liệu event, mô tả chi tiết trong tài liệu từng event type. |