Tổng quan
Giới thiệu về Webhooks
Ví dụ về thời điểm ứng dụng của bạn có thể sử dụng webhooks (use case)
Sự kiện webhook
products.create
để được thông báo về các sản phẩm mới được tạo từ PosApp. Tên sự kiện xác định bản chất của sự kiện đã xảy ra.Những sự kiện được PosApp hỗ trợ
Tên sự kiện | Mô tả | Trạng thái | Data Schema |
---|---|---|---|
warehouse.import.create | Tạo phiếu nhập kho | Sẵn sàng | Click to view |
warehouse.export.create | Tạo phiếu xuất kho | Coming soon | |
orders.create | Có đơn hàng mới | Sẵn sàng | Click to view |
orders.update | Đơn hàng có cập nhật mới | Sẵn sàng | Click to view |
products.create | Sản phẩm mới được tạo | Coming soon | |
products.update | Sản phẩm có cập nhật mới | Coming soon |
Một số lưu ý khi xử lý sự kiện của PosApp
PosApp không xử lý cùng sự kiện trên nhiều webhook
Làm việc với các phiên bản
api_version
trong payload
của request sẽ chỉ định phiên bản nào của Admin API được sử dụng để trả về cấu trúc dữ liệu tương ứng.Xử lý trùng lặp webhooks
event_id
với event_id
của các sự kiện trước đó.Sử dụng Webhook
Hướng dẫn cấu hình webhook
127.0.0.1
và localhost
URL sẽ không hoạt động vì máy chủ của PosApp sẽ không thể liên lạc với máy tính local của bạn (bạn có thể tham khảo sử dụng ngrok để test môi trường local và https).CAUTION
Xử lý yêu cầu xác minh
GET
có tham số challenge
, là một chuỗi ngẫu nhiên (ví dụ https://www.example.com/posapp-webhook?challenge=abc123). Ứng dụng của bạn cần phản hồi bằng cách phản hồi lại tham số challenge
đó, và có tối đa 3 giây
để phản hồi yêu cầu xác minh. PosApp sẽ không thực hiện thử lại tự động cho các yêu cầu xác minh.headers
sau trong phản hồi của bạn cho yêu cầu xác minh:'Content-Type: text/plain'
'X-Content-Type-Options: nosniff'
challenge
, PosApp sẽ bắt đầu gửi thông báo đến URL webhook mỗi khi c ó sự kiện bạn đã đăng ký. Nếu ứng dụng của bạn không phản hồi đúng, bạn sẽ thấy thông báo lỗi cho bạn biết về sự cố.Nhận thông báo
HTTP POST
có payload là JSON
:Event
event_id
string
required
event_type
string
required
api_version
string
required
data
required
Any of
data
của payloadid
string
required
shop_id
integer
required
shop_name
string
required
facility_id
integer
required
facility_name
string
required
transaction_with_id
integer
required
transaction_with_name
string
required
code
string
required
created_at
string
required
total
number
required
paid_total
number | null
optional
note
string | null
optional
status
integer
required
discount_price
number | null
optional
discount_percent
number | null
optional
surcharge_price
number | null
optional
surcharge_percent
number | null
optional
tax_price
number | null
optional
tax_percent
number | null
optional
shipping
number
required
items
array [object {16}]