Nhận thay đổi

Đăng ký webhook

POST /v1/partner.Webhook/CreateWebhook

Gửi request như sau để đăng ký webhook và bắt đầu nhận thay đổi từ eTop:

curl https://api.sandbox.etop.vn/v1/partner.Webhook/CreateWebhook \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $API_KEY" \
    -d '
{
	"url": "https://example.com/callback/28929172",
	"entities": ["order", "fulfillment"],
	"fields": [],
	"metadata": ""
}'

Các thay đổi từ sau thời điểm đăng ký webhook sẽ được eTop gửi đến địa chỉ url bạn cung cấp. Khi nhận được webhook, bạn cần trả về status 200 và body ok để báo là bạn đã nhận webhook thành công. Webhook sẽ được gửi lại sau một khoảng thời gian nếu gặp lỗi, và sẽ ngưng gửi nếu gặp lỗi liên tục sau một số lần nhất định (thời gian gửi lại tối đa là 24 giờ). Để khôi phục trạng thái, hãy xoá webhook cũ và đăng ký lại.

Xem thêm cấu trúc dữ liệu được gửi qua webhook.

TIP

Bạn nên đính kèm token trong địa chỉ url của webhook để khi nhận được webhook, bạn có thể biết là do eTop gửi chứ không phải một ai khác.

TIP

Tạm thời danh sách fields chưa được hỗ trợ. Sẽ được bổ sung trong các phiên bản tiếp theo.

Xem trạng thái webhook

POST /v1/partner.Webhook/GetWebhooks

Gửi request như sau để xem trạng thái hiện tại của webhooks:

curl https://api.sandbox.etop.vn/v1/partner.Webhook/GetWebhooks \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $API_KEY" \
    -d '{}'

Kết quả trả về sẽ tương tự như sau:

{
  "webhooks": [
    {
      "id": "1056533068556534027",
      "entities": ["order"],
      "fields": [],
      "url": "https://example.com/callback/28929172",
      "metadata": "",
      "created_at": "2018-12-17T13:02:16Z",
      "states": {
        "state": "retry",
        "last_sent_at": "2018-12-27T09:57:54Z",
        "last_error": {
          "error": "unexpected status: 401",
          "resp_status": 401,
          "resp_body": "",
          "retried": 5,
          "sent_at": "2018-12-27T09:57:54Z"
        }
      }
    }
  ]
}

Field states.state cho biết trạng thái hiện tại của webhook:

State Ghi chú
ok Webhook đã được gửi thành công.
retry Webhook gần nhất gặp lỗi, và sẽ được gửi lại sau một khoảng thời gian. Xem chi tiết lỗi ở last_error.
stop Webhook gặp lỗi quá nhiều lần và đã ngưng gửi. Để khôi phục trạng thái, hãy xoá webhook cũ và đăng ký lại.

Xoá webhook

POST /v1/partner.Webhook/DeleteWebhook

Xoá webhook để ngưng nhận thay đổi từ eTop:

curl https://api.sandbox.etop.vn/v1/partner.Webhook/DeleteWebhook \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $API_KEY" \
    -d '{"id": "<id của webhook>"}'