管理订阅
订阅授予开发者应用程序通过 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}"
批准后:
- 订阅状态从
wait_for_approval变更为subscribed。 - 通过电子邮件通知开发者(如果已配置)。
- 发送 Webhook 通知(如果在 API 产品上配置)。
拒绝订阅
curl -k -X POST "https://localhost:7443/api/approvals/{approval_id}/reject" \
-H "X-API-KEY: ${API_KEY}"
拒绝后:
- 删除订阅记录。
- 通过电子邮件通知开发者(如果已配置)。
- 发送 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。 |
ResourceID | API 产品 ID。 |
ResourceName | API 产品名称。 |
Event | 事件类型。 |
Webhook 投递采用指数退避重试(最多重试 5 次,初始间隔为 1 秒,上限为 64 秒)。