Thiết lập thông báo bằng webhook

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Webhook là gì?

Webhook xác định một trình xử lý gọi lại HTTP được kích hoạt bởi một sự kiện. Bạn có thể tạo webhook và định cấu hình webhook để xử lý thông báo về sự kiện, thay vì sử dụng mẫu thông báo kiếm tiền, như mô tả trong phần Thiết lập thông báo bằng mẫu thông báo.

Để thiết lập thông báo bằng webhook, hãy hoàn tất các bước sau bằng giao diện người dùng Edge Management hoặc Management and Monetization API:

  1. Thêm webhook xác định trình xử lý lệnh gọi lại cho các sự kiện thông báo bằng giao diện người dùng hoặc API.
  2. Thiết lập trình xử lý gọi lại.
  3. Thiết lập thông báo cho một gói có mức phí linh hoạt bằng cách sử dụng giao diện người dùng hoặc API.

Quản lý webhook

Thêm và quản lý webhook xác định trình xử lý lệnh gọi lại cho các sự kiện thông báo bằng giao diện người dùng hoặc API.

Quản lý webhook bằng giao diện người dùng

Thêm và quản lý các webhook xác định trình xử lý lệnh gọi lại cho các sự kiện thông báo bằng giao diện người dùng, như mô tả trong các phần sau.

Khám phá trang Webhook

Truy cập vào trang Webhook, như mô tả bên dưới.

Edge

Cách truy cập vào trang Webhooks bằng giao diện người dùng Edge:

  1. Đăng nhập vào apigee.com/edge.
  2. Chọn Xuất bản > Kiếm tiền > Webhook trong thanh điều hướng bên trái.

Trang Webhook sẽ xuất hiện.

Như minh hoạ trong hình, trang Webhook cho phép bạn:

Classic Edge (Private Cloud)

Cách truy cập vào trang Webhook bằng giao diện người dùng Edge phiên bản cũ:

  1. Đăng nhập vào http://ms-ip:9000, trong đó ms-ip là địa chỉ IP hoặc tên DNS của nút Máy chủ quản lý.
  2. Chọn Quản trị > Webhook.

Trang Webhook sẽ xuất hiện.

Trang Webhook cho phép bạn:

Thêm webhook bằng giao diện người dùng

Cách thêm webhook bằng giao diện người dùng:

  1. Truy cập vào trang Webhook.
  2. Nhấp vào + Webhook.
  3. Nhập thông tin sau (bắt buộc phải điền tất cả các trường).
    Trường Nội dung mô tả
    Tên Tên của webhook.
    URL URL của trình xử lý gọi lại sẽ được gọi khi thông báo sự kiện được kích hoạt. Xem phần Thiết lập trình xử lý gọi lại.
  4. Nhấp vào Lưu.

Webhook sẽ được thêm vào danh sách và bật theo mặc định.

Chỉnh sửa webhook bằng giao diện người dùng

Cách chỉnh sửa webhook bằng giao diện người dùng:

  1. Truy cập vào trang Webhook.
  2. Di chuyển con trỏ đến webhook mà bạn muốn chỉnh sửa rồi nhấp vào biểu tượng trong trình đơn thao tác.
  3. Chỉnh sửa các trường webhook (nếu cần).
  4. Nhấp vào Cập nhật webhook.

Bật hoặc tắt webhook bằng giao diện người dùng

Cách bật hoặc tắt webhook bằng giao diện người dùng:

  1. Truy cập vào trang Webhook.
  2. Di chuyển con trỏ lên webhook và bật/tắt nút chuyển trạng thái để bật hoặc tắt webhook đó.

Xoá webhook bằng giao diện người dùng

Cách xoá webhook bằng giao diện người dùng:

  1. Truy cập vào trang Webhook.
  2. Di chuyển con trỏ lên webhook mà bạn muốn xoá rồi nhấp vào biểu tượng .

Webhook sẽ bị xoá và loại bỏ khỏi danh sách.

Quản lý webhook bằng API

Thêm và quản lý webhook bằng API như mô tả trong các phần sau.

Xem tất cả webhook bằng API

Xem tất cả webhook bằng cách gửi yêu cầu GET đến /mint/organizations/{org_name}/webhooks. Ví dụ:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks" \
  -H "Content-Type: application/json " \
  -u email:password

Sau đây là ví dụ về phản hồi được trả về:

{
  "totalRecords": 2,
  "webhooks": [
    {
      "created": 1460162656342,
      "enabled": false,
      "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
      "name": "webhook1",
      "postUrl": "http://mycompany.com/callbackhandler1",
      "updated": 1460162656342,
      "updatedBy": "joe@example.com"
    },
        {
      "created": 1460138724352,
      "createdBy": "joe@example.com",
      "enabled": true,
      "id": "a39ca777-1861-49cf-a397-c9e92ab3c09f",
      "name": "webhook2",
      "postUrl": "http://mycompany.com/callbackhandler2",
      "updated": 1460138724352,
      "updatedBy": "joe@example.com"
    }

  ]
}

Xem webhook bằng API

Xem một webhook bằng cách gửi yêu cầu GET đến /mint/organizations/{org_name}/webhooks/{webhook_id}.

Ví dụ:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

Sau đây là ví dụ về phản hồi:

{
   "created": 1460162656342,
   "enabled": false,
   "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
   "name": "webhook1",
   "postUrl": "http://mycompany.com/callbackhandler1",
   "updated": 1460162656342,
   "updatedBy": "joe@example.com"
 }

Thêm webhook bằng API

Thêm webhook bằng cách gửi yêu cầu POST đến /mint/organizations/{org_name}/webhooks. Bạn phải truyền tên của webhook và URL của trình xử lý lệnh gọi lại sẽ được gọi khi thông báo sự kiện được kích hoạt.

Ví dụ: lệnh sau đây sẽ tạo một webhook có tên là webhook3 và chỉ định callbackhandler3 cho webhook đó:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks"
  -H "Content-Type: application/json "
  -d '{
    "name": "webhook3",
    "postURL": "http://mycompany.com/callbackhandler3"
    }' \
    -u email:password

Sau đây là ví dụ về phản hồi:

{
  "created": 1460385534555,
  "createdBy": "joe@example.com",
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler3",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Chỉnh sửa webhook bằng API

Chỉnh sửa webhook bằng cách gửi yêu cầu PUT đến /mint/organizations/{org_name}/webhooks/{webhook_id}. Truyền các nội dung cập nhật trong phần nội dung của yêu cầu.

Ví dụ: thao tác sau đây sẽ cập nhật trình xử lý gọi lại được liên kết với webhook1:

curl -X PUT "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "postURL": "http://mycompany.com/callbackhandler4"
  }' \
  -u email:password

Sau đây là ví dụ về phản hồi:

{
  "created": 1460385534555,
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Bật hoặc tắt webhook bằng API

Bật hoặc tắt webhook bằng cách gửi yêu cầu POST đến /mint/organizations/{org_name}/webhooks/{webhook_id}, như bạn đã làm khi cập nhật webhook, đồng thời đặt thuộc tính enabled trong nội dung yêu cầu thành true hoặc false, tương ứng. Nếu bạn tắt webhook, webhook sẽ không được kích hoạt khi có sự kiện xảy ra.

Ví dụ: đoạn mã sau đây sẽ bật webhook3:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "enabled": "true"
  }' \
  -u email:password

Sau đây là ví dụ về phản hồi:

{
  "created": 1460385534555,
  "enabled": true,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Xoá webhook bằng API

Xoá webhook bằng cách gửi yêu cầu XOÁ đến /mint/organizations/{org_name}/webhooks/{webhook_id}.

Để chỉ định có bắt buộc xoá webhook hay không nếu có các quy trình đang diễn ra, hãy đặt tham số truy vấn forceDelete thành true hoặc false. Tham số truy vấn forceDelete được bật (true) theo mặc định.

Ví dụ: mã sau đây sẽ xoá webhook3:

curl -X DELETE "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

Thiết lập trình xử lý gọi lại

Sau đây là định dạng của yêu cầu JSON được gửi đến trình xử lý gọi lại do một webhook xác định khi thông báo sự kiện được kích hoạt. Bạn phải đảm bảo rằng trình xử lý gọi lại xử lý yêu cầu một cách thích hợp.

{
        "orgName": "{org_id}",
        "developerEmail": "{dev_email}",
        "developerFirstName": "{first_name}",
        "developerLastName": "{last_name}",
        "companyName": "{company_name}",
        "applicationName": "{app_name}",
        "packageName": "{api_package_name}",
        "packageId": "{api_package_id}",
        "ratePlanId": "{rateplan_id}",
        "ratePlanName": "{rateplan_name}",
        "ratePlanType": "{rateplan_type}",
        "developerRatePlanQuotaTarget": {quota_target},
        "quotaPercentUsed": {percentage_quota_used},
        "ratePlanStartDate": {rateplan_startdate}, 
        "ratePlanEndDate": {rateplan_enddate},
        "nextBillingCycleStartDate": {next_billing_cycle_startdate},
        "products": ["{api_product_name}","{api_product_name}"],
        "developerCustomAttributes": [],
        "triggerTime": {trigger_time},
        "triggerReason": "{trigger_reason}",
        "developerQuotaResetDate": "{devquota_resetdate}"
}

Thiết lập thông báo cho gói có mức giá linh hoạt

Thiết lập thông báo bằng cách sử dụng webhook cho một gói có mức phí linh hoạt bằng giao diện người dùng hoặc API.

Thiết lập thông báo cho gói có mức giá linh hoạt bằng giao diện người dùng

Thiết lập thông báo bằng webhook cho một gói có mức giá linh hoạt bằng giao diện người dùng, như mô tả bên dưới.

Truy cập vào hộp thoại Thông báo cho gói có thể điều chỉnh mức sử dụng

Truy cập vào hộp thoại Thông báo cho gói lãi suất có thể điều chỉnh, như mô tả dưới đây.

Edge

Cách truy cập vào hộp thoại thông báo bằng giao diện người dùng Edge:

  1. Tạo và xuất bản một gói thông báo có thể điều chỉnh, như mô tả trong phần Chỉ định thông tin chi tiết về gói thông báo có thể điều chỉnh.
  2. Truy cập vào trang Kế hoạch giá bằng cách chọn Xuất bản > Kiếm tiền > Kế hoạch giá trong thanh điều hướng bên trái.
  3. Di chuyển con trỏ lên kế hoạch thông báo có thể điều chỉnh đã xuất bản để hiển thị các thao tác.
  4. Nhấp vào +Thông báo.

    Hộp thoại Thông báo sẽ xuất hiện.

    Lưu ý: Bạn phải đăng gói giá thì thao tác +Thông báo mới xuất hiện.

Classic Edge (Private Cloud)

Cách truy cập vào trang Thông báo:

  1. Tạo một kế hoạch thông báo có thể điều chỉnh, như mô tả trong phần Chỉ định thông tin chi tiết về kế hoạch thông báo có thể điều chỉnh.
  2. Chọn Xuất bản > Gói để xem các gói giá.
  3. Nhấp vào +Thông báo trong cột Hành động của kế hoạch giá.

    Hộp thoại Thông báo sẽ xuất hiện.

Thêm thông báo cho gói có mức giá có thể điều chỉnh bằng giao diện người dùng

Cách thêm thông báo cho một gói có mức giá linh hoạt vào giao diện người dùng:

  1. Truy cập vào hộp thoại Thông báo.
  2. Đặt điều kiện thông báo trong mục Khoảng thời gian thông báo bằng cách chỉ định tỷ lệ phần trăm của số giao dịch mục tiêu mà bạn muốn thông báo được kích hoạt. Cụ thể:
    • Để đặt một tỷ lệ phần trăm chính xác, hãy nhập tỷ lệ phần trăm đó vào trường Ở mức/Từ % và để trống trường Đến %.
    • Để đặt một phạm vi phần trăm, hãy nhập phần trăm bắt đầu và phần trăm kết thúc vào các trường Từ %Đến % tương ứng, đồng thời nhập giá trị gia số vào trường Bước %. Theo mặc định, thông báo sẽ được gửi theo mức tăng 10% trong phạm vi đã chỉ định.

    Trường Notify At được cập nhật để phản ánh từng tỷ lệ phần trăm của số giao dịch mục tiêu sẽ kích hoạt một sự kiện.

  3. Để đặt thêm điều kiện thông báo, hãy nhấp vào +Thêm rồi lặp lại bước 4.
  4. Đặt thao tác thông báo trong mục Webhooks bằng cách chọn một hoặc nhiều webhook để quản lý việc xử lý lệnh gọi lại khi thông báo được kích hoạt.
  5. Nhấp vào Tạo thông báo.

Chỉnh sửa thông báo cho gói có mức giá linh hoạt bằng giao diện người dùng

Cách chỉnh sửa thông báo cho gói có lãi suất có thể điều chỉnh trên giao diện người dùng:

  1. Truy cập vào hộp thoại Thông báo.
  2. Nhấp vào +Thông báo trong cột Hành động của kế hoạch giá.
  3. Nhấp vào Chỉnh sửa.
  4. Sửa đổi các giá trị nếu cần.
  5. Nhấp vào Lưu thông báo.

Xoá thông báo cho gói có mức giá linh hoạt bằng giao diện người dùng

Cách xoá một điều kiện và hành động thông báo:

  1. Truy cập vào hộp thoại Thông báo.
  2. Nhấp vào +Thông báo trong cột Hành động của kế hoạch giá.
  3. Nhấp vào Xoá thông báo.

Thiết lập thông báo cho gói có mức giá linh hoạt bằng API

Để thiết lập thông báo cho một gói có mức phí có thể điều chỉnh bằng API, hãy sử dụng quy trình được mô tả trong phần Quản lý các điều kiện và hành động thông báo bằng API và sử dụng các thuộc tính được mô tả trong phần này.

Để thiết lập điều kiện thông báo (notificationCondition), hãy sử dụng các giá trị thuộc tính sau. Để biết thêm thông tin, hãy xem phần Các thuộc tính cấu hình cho điều kiện thông báo.

Thuộc tính Giá trị
RATEPLAN Mã nhận dạng của gói giá thông báo có thể điều chỉnh.
PUBLISHED TRUE để cho biết rằng bạn phải xuất bản gói thông báo có thể điều chỉnh.
UsageTarget Tỷ lệ phần trăm của số giao dịch mục tiêu mà bạn muốn nhận thông báo.

Thuộc tính này cho phép bạn thông báo cho nhà phát triển khi họ sắp đạt được hoặc đã đạt được số lượng giao dịch mục tiêu cho một gói thẻ thông báo có thể điều chỉnh mà họ đã mua. Ví dụ: nếu nhà phát triển đã mua gói thông báo có thể điều chỉnh và số lượng giao dịch mục tiêu của nhà phát triển được đặt thành 1.000, bạn có thể thông báo cho họ khi họ đạt được 800 giao dịch (80% số lượng giao dịch mục tiêu), 1.000 giao dịch (100%) hoặc 1.500 giao dịch (150%).

  • Để đặt tỷ lệ phần trăm chính xác, hãy nhập %= n. Ví dụ: %= 80 sẽ gửi thông báo khi tỷ lệ phần trăm của số giao dịch mục tiêu đạt đến 80%.
  • Để đặt một phạm vi phần trăm, hãy nhập phần trăm bắt đầu và kết thúc, cũng như giá trị mà bạn muốn tăng theo cách sau: %= start to end by n. Ví dụ: giá trị %= 80 to 100 by 10 sẽ gửi thông báo khi tỷ lệ phần trăm của số giao dịch mục tiêu đạt đến 80%, 90% và 100%.

Để thiết lập thao tác thông báo, trong actions, hãy đặt các giá trị sau. Để biết thêm thông tin, hãy xem phần Các thuộc tính cấu hình cho thao tác trên thông báo.

Thuộc tính Giá trị
actionAttribute WEBHOOK để kích hoạt webhook.
value Mã nhận dạng của webhook mà bạn đã xác định trong phần trước, Tạo webhook bằng API.

Sau đây là ví dụ về cách tạo một điều kiện thông báo kích hoạt webhook khi tỷ lệ phần trăm của số giao dịch mục tiêu đạt đến 80%, 90%, 100%, 110% và 120%.

{
    "notificationCondition": [
      {
        "attribute": "RATEPLAN",
        "value": "123456"
      },
      {
        "attribute": "PUBLISHED",
        "value": "TRUE"
      },
      {
        "attribute": "UsageTarget",
        "value": "%= 80 to 120 by 10"
      }
    } 
    ],
   "actions": [{
          "actionAttribute": "WEBHOOK",
          "value": "b0d77596-142e-4606-ae2d-f55c3c6bfebe",
        }]
  }

Để biết thông tin về cách xem, cập nhật và xoá điều kiện và hành động của thông báo, hãy xem:

Mã phản hồi của webhook

Sau đây là nội dung tóm tắt về mã phản hồi webhook và cách hệ thống diễn giải các mã này.

Mã phản hồi Mô tả
2xx Thành công
5xx

Yêu cầu không thành công. Hệ thống sẽ thử lại yêu cầu tối đa 3 lần trong khoảng thời gian 5 phút.

Lưu ý: Thời gian chờ đọc và kết nối cho các yêu cầu webhook là 3 giây mỗi yêu cầu. Điều này có thể dẫn đến yêu cầu không thành công.

Other response Yêu cầu không thành công. Hệ thống sẽ không thử lại yêu cầu.