跳到主要内容
版本:3.10.x

管理订阅

订阅授予开发者应用程序通过 API 产品使用 API 的权限。本指南介绍如何使用 Provider Portal Admin API 在 Provider Portal 中管理订阅。

前置条件

按照从控制台获取令牌中的步骤创建令牌,并将其导出为环境变量:

export API_KEY="a7ee-xxxxxxxxxxxxx"

列出订阅

检索特定 API 产品的所有订阅:

curl -k "https://localhost:7443/api/api_products/{product_id}/subscriptions?portal_id={portal_id}" \
-H "X-API-KEY: ${API_KEY}"

如果不在本地运行,请将 localhost 替换为控制台主机。如果控制台使用自签名 TLS 证书,则需要 -k 参数。

批准订阅请求

当 API 产品禁用 subscription_auto_approval 时,订阅请求会创建一条由管理员审核的审批记录。

列出待审批请求

curl -k "https://localhost:7443/api/approvals?event=api_product_subscription&status=pending" \
-H "X-API-KEY: ${API_KEY}"

响应:

{
"list": [
{
"id": "approval-uuid",
"event": "api_product_subscription",
"status": "pending",
"resource_type": "api_product",
"resource_name": "Payments API",
"applicant_name": "Jane Smith",
"applied_at": "2025-01-15T10:30:00Z",
"portal_name": "Main Portal"
}
],
"total": 1
}

批准订阅

curl -k -X POST "https://localhost:7443/api/approvals/{approval_id}/accept" \
-H "X-API-KEY: ${API_KEY}"

批准后:

  1. 订阅状态从 wait_for_approval 变更为 subscribed
  2. 通过电子邮件通知开发者(如果已配置)。
  3. 发送 Webhook 通知(如果在 API 产品上配置)。

拒绝订阅

curl -k -X POST "https://localhost:7443/api/approvals/{approval_id}/reject" \
-H "X-API-KEY: ${API_KEY}"

拒绝后:

  1. 删除订阅记录。
  2. 通过电子邮件通知开发者(如果已配置)。
  3. 发送 Webhook 通知(如果在 API 产品上配置)。

取消订阅

管理员可以取消有效订阅:

curl -k -X DELETE "https://localhost:7443/api/api_products/{product_id}/subscriptions/{subscription_id}?portal_id={portal_id}" \
-H "X-API-KEY: ${API_KEY}"

取消订阅会删除订阅记录,并取消与其关联的任何待审批请求。

通知配置

订阅事件可以触发电子邮件和 Webhook 通知。通知在 API 产品上配置。有关设置详情,请参阅管理 API 产品

通知流程

事件开发者收到管理员收到收到通知的联系人
请求订阅“Request is Under Review”(请求正在审核中)“Awaiting Your Approval”(等待你审批)subscription_approval_created
订阅已批准“Request Has Been Approved”(请求已批准)“Request Approved”(请求已批准)subscription_approval_accepted
订阅已拒绝“Request Denied”(请求已拒绝)“Request Denied”(请求已拒绝)subscription_approval_rejected
订阅已取消subscription_approval_cancelled

管理员通知仅发送给具有订阅审批权限和经过验证的电子邮件地址的用户。

Webhook 通知

Webhook 联系人会将 HTTP 请求发送到已配置的端点。请求体可以使用模板变量:

变量描述
ApplicantID请求者的开发者 ID。
ApplicantName开发者的显示名称。
AppliedAt订阅请求的时间戳。
ApprovalID审批记录 ID。
ResourceIDAPI 产品 ID。
ResourceNameAPI 产品名称。
Event事件类型。

Webhook 投递采用指数退避重试(最多重试 5 次,初始间隔为 1 秒,上限为 64 秒)。

其他资源