Webhook

Tương tự như API nhưng ở chiều ngược lại, Webhook chủ động gửi truy vấn đến máy chủ của bạn nhằm thông báo cho bạn có điều gì đó đang xảy ra.

Nếu máy chủ nhận truy vấn webhook không phản hồi với mã phản hồi bắt đầu bằng 2xx, Transmoni sẽ thử gọi lại webhook sau 10 giây. Nếu lần thử thứ hai đó không thành công, Transmoni sẽ cố gắng gọi webhook lần cuối sau 100 giây.

Để thiết lập webhook, trước tiên bạn truy cập vào trang quản lý webhook của Transmoni tại:

Transmoni > Tài khoản > Webhook

Tiếp đến, bạn nhập địa chỉ URL webhook của mình vào và nhấn Lưu lại.

Thử nghiệm

Để kiểm tra truy vấn tới địa chỉ webhook mà bạn đã tạo, di chuyển tới trang quản lý webhook và thực hiện Thử nghiệm. Lúc này bạn có thể yêu cầu Transmoni gửi một truy vấn thử với các thông số do mình thiết lập hoặc bỏ trống để Transmoni tạo dữ liệu ngẫu nhiên khi gửi.

Dữ liệu gửi đi có dạng như sau:

{
  "transaction": {
    "type": "credit",
    "reference": "7uF65UK5BC4XBIl7Dwl1",
    "amount": "100000",
    "description": "Webhook test request from Transmoni",
    "date": "10-01-2021 14:31:07"
  }
}

Lưu ý: truy vấn thử nghiệm sẽ không được lưu lại danh sách trong lịch sử truy vấn.

Xác thực truy vấn

Để đảm bảo truy vấn xuất phát từ hệ thống của mình, Transmoni cung cấp cho mỗi địa chỉ webhook một mã bảo mật ngẫu nhiên và hoàn toàn riêng biệt.

Mã bảo mật này được sử dụng để tạo một mã hash đối chiếu. Transmoni sử dụng thuật toán sha256 tạo mã này, sau đó mã hash này sẽ được gửi kèm theo truy vấn với key Signature.

Sau khi nhận được truy vấn đến địa chỉ webhook của mình bạn thực hiện tạo một mã hash tương ứng bằng cách sau:

$computedSignature = hash_hmac('sha256', $requestBody, $transmoniSecret);

Tiếp đến tiến hành so sánh mã hash đã tạo với Signature header của Transmoni. Nếu trùng khớp sẽ tiếp tục, nếu sai sẽ loại bỏ truy vấn đó.

Last updated