使用网络钩子设置通知

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

什么是网络钩子?

webhook 定义由事件触发的 HTTP 回调处理程序。您可以 创建网络钩子并将其配置为处理事件通知,作为使用 创收通知模板,如使用 通知模板

如需使用 Webhook 设置通知,请使用 Edge Management 完成以下步骤 界面或 Management and Monetization API:

  1. 添加使用 界面API
  2. 设置回调处理程序
  3. 使用 界面API

管理 webhook

添加和管理使用 界面API

使用界面管理 webhook

添加和管理使用界面为通知事件的回调处理程序定义回调处理程序的网络钩子,如以下部分所述。

探索网络钩子页面

访问 Webhook 页面(如下所述)。

Edge

如需使用 Edge 界面访问网络钩子页面,请执行以下操作:

  1. 登录 apigee.com/edge
  2. 选择发布 >创收 >网络钩子

此时将显示 Webhook 页面。

如图所示,您可以通过 Webhook 页面执行以下操作:

传统 Edge(私有云)

如需使用传统 Edge 界面访问网络钩子页面,请执行以下操作:

  1. 登录 http://ms-ip:9000,其中 ms-ip 是管理服务器节点的 IP 地址或 DNS 名称。
  2. 选择管理 >网络钩子

此时将显示 Webhook 页面。

通过 Webhook 页面,您可以:

使用界面添加 webhook

如需使用界面添加 webhook,请执行以下操作:

  1. 访问 Webhook 页面
  2. 点击 + 网络钩子
  3. 输入以下信息(所有字段均为必填字段)。
    字段 说明
    名称 webhook 的名称。
    网址 收到事件通知时调用的回调处理程序的网址 触发。请参阅设置回调处理程序
  4. 点击保存

默认情况下,webhook 会添加到列表中并处于启用状态。

使用界面修改网络钩子

如需使用界面修改 webhook,请执行以下操作:

  1. 访问 Webhook 页面
  2. 将光标悬停在要修改的网络钩子上,然后点击操作菜单中的
  3. 根据需要修改 webhook 字段。
  4. 点击更新 Webhook

使用界面启用或停用 webhook

如需使用界面启用或停用 webhook,请执行以下操作:

  1. 访问 Webhook 页面
  2. 将光标放在网络钩子上,切换状态开关即可启用或停用网络钩子。

使用界面删除 webhook

如需使用 theUI 删除 webhook,请执行以下操作:

  1. 访问 Webhook 页面
  2. 将光标放在要删除的网络钩子上,然后点击

系统即会删除该 webhook,并将其从列表中移除。

使用 API 管理 webhook

按照以下部分所述,使用 API 添加和管理网络钩子。

使用 API

/mint/organizations/{org_name}/webhooks 发出 GET 请求,以查看所有 Webhook。 例如:

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

下面提供了所返回响应的示例:

{
  "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"
    }

  ]
}

使用 API

通过向 发出 GET 请求来查看单个 webhook /mint/organizations/{org_name}/webhooks/{webhook_id}

例如:

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

以下提供了一个响应示例:

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

使用 API

通过向 /mint/organizations/{org_name}/webhooks 发出 POST 请求来添加 webhook。 您必须传递 webhook 的名称以及将要调用的回调处理程序的网址 。

例如,以下命令创建了一个名为 webhook3 的 webhook,并将 callbackhandler3 添加到 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

以下提供了一个响应示例:

{
  "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"
}

使用 API 修改 webhook

向以下项目发出 PUT 请求以修改网络钩子: /mint/organizations/{org_name}/webhooks/{webhook_id}。在 请求。

例如,以下代码将更新与 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

以下提供了一个响应示例:

{
  "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"
}

使用 API 启用或停用 webhook

发出 POST 请求以启用或停用 webhook /mint/organizations/{org_name}/webhooks/{webhook_id},就像您在更新网络钩子时执行的操作一样, 并将请求正文中的 enabled 属性分别设置为 true 或 false。如果您停用网络钩子, 情况。

例如,以下代码会启用 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

以下提供了一个响应示例:

{
  "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"
}

使用 API

向以下项目发出 DELETE 请求以删除网络钩子: /mint/organizations/{org_name}/webhooks/{webhook_id}

指定是否在 webhook 中存在进程的情况下强制删除 webhook 请将 forceDelete 查询参数设置为 true,或 falseforceDelete 查询参数已启用 (true) 默认情况。

例如,以下命令会删除 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

设置回调处理程序

下面显示了发送到回调处理程序的 JSON 请求的格式 由 webhook 定义。您必须确保回调 处理程序对请求进行适当处理。

{
        "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}"
}

为可调整费率方案设置通知

使用网络钩子设置通知,以便使用 界面API

使用界面为可调整费率方案设置通知

如下所述,通过界面使用网络钩子设置可调整费率方案的通知。

访问“通知”对话框,查看可调整的价格方案

访问“通知”对话框,查看可调整的价格方案(如下所述)。

Edge

如需使用 Edge 界面访问通知对话框,请执行以下操作:

  1. 按照指定 可调整的通知计划详情
  2. 选择发布 >创收 >“价格方案”
  3. 将光标悬停在已发布的可调整通知率方案上,以显示相关操作。
  4. 点击 +通知

    此时会显示“通知”对话框。

    注意:您必须先发布费率方案,系统才会显示“+ 通知”操作。

传统 Edge(私有云)

要访问“通知”页面,请执行以下操作:

  1. 创建可调整的通知频率计划,如指定 可调整的通知计划详情
  2. 选择发布 >资源包,以查看费率方案。
  3. 点击费率方案“操作”列中的 + 通知

    此时会显示“通知”对话框。

使用界面添加关于可调整费率方案的通知

如需为可调整费率方案添加通知,请在界面中执行以下操作:

  1. 访问“通知”对话框
  2. Notification Intervals 下设置通知条件,方法是 指定您希望在达成交易时 触发通知。具体而言: <ph type="x-smartling-placeholder">
      </ph>
    • 要设置精确的百分比,请在比例/起始百分比字段中输入百分比 并将收件人 % 字段留空。
    • 要设置百分比范围,请在 At/From %To % 字段,是一个增量 值(位于步骤 % 字段中)。默认情况下,系统会以 10% 的比例发送通知 指定范围内的增量单位。

    Notify At 字段会更新,以反映 即会触发某个事件的事务

  3. 要设置其他通知条件,请点击 + 添加并重复执行步骤 4.
  4. 通过选择一个或多个 Webhook 在 Webhook 下设置通知操作 网络钩子,用于管理通知触发时的回调处理。
  5. 点击创建通知

使用界面修改可调整费率方案的通知

如需修改可调整费率方案的通知,请在界面中执行以下操作:

  1. 访问“通知”对话框
  2. 点击费率方案“操作”列中的 + 通知
  3. 点击修改
  4. 根据需要修改值。
  5. 点击 Save Notification

使用界面删除可调整费率方案的通知

要删除通知条件和操作,请执行以下操作:

  1. 访问“通知”对话框
  2. 点击费率方案“操作”列中的 + 通知
  3. 点击删除通知

使用 API

如需使用 API 为可调整费率方案设置通知,请按以下流程操作: 请参阅管理 通知条件和操作并使用本部分中介绍的属性。

如需设置通知条件 (notificationCondition),请使用 以下属性值。有关详情,请参阅配置 属性

属性
RATEPLAN 可调整通知率方案的 ID。
PUBLISHED TRUE,指示必须 发布。
UsageTarget 您希望收到通知时所占的目标交易次数的百分比 触发。

借助此属性,您可以在开发者接近或已经到达 一个可调整的通知价目表方案中,其目标交易次数 以及购买的产品例如,如果开发者购买了可调整的通知 并且开发者的目标交易次数已设为 1000 您可以在客户达到 800 次交易(即目标展示次数的 80%)时通知他们 交易)、1000 笔交易 (100%) 或 1500 笔交易 (150%)。

  • 如需设置确切百分比,请输入 %= n。例如,当达到目标数量百分比时,%= 80 会发送通知, 交易量达到 80%
  • 要设置百分比范围,请输入开始百分比和结束百分比,以及 按如下方式递增:%= start to end by n。对于 例如,值为 %= 80 to 100 by 10 时, 目标交易次数的百分比分别达到 80%、90% 和 100%。

如需设置通知操作,请在 actions 下设置以下值。对于 请参阅配置 属性

属性
actionAttribute WEBHOOK,用于触发网络钩子。
value 您在上一部分(使用 API 创建 webhook)中定义的 webhook 的 ID。

以下示例展示了如何创建触发 当目标事务数的百分比达到 80%、90%、100%、110%、 和 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",
        }]
  }

如需了解如何查看、更新和删除通知条件和操作, 请参阅:

网络钩子响应代码

下文总结了网络钩子响应代码以及 系统。

响应代码 说明
2xx 成功
5xx

请求失败。在 5 分钟内,系统最多会重试请求三次 。

注意 :webhook 请求的读取和连接超时如下: 每次 3 秒,这可能会导致请求失败。

Other response 请求失败。系统不会重试请求。