正文 ↑

搜索文档

输入关键词搜索全部文档

文档 / 接入指南
原始 Markdown ↗

公共套餐查询

更新:2026-10-28。公共接口实现已完成,正在等待后端发布与线上验收;文档可读不表示接口已经上线。旧版本可能返回接口不存在,客户端应显示可重试的加载状态,不展示内部错误。

用途与权限

所有客户端共用同一 SaaS 套餐数据源,不需要管理员的套餐管理权限;必须携带有效的平台登录 token。“公共”指跨业务共用,不是匿名访问。

此接口只展示套餐,不创建订单、不发放权益、不证明当前用户已订阅,也不授权购买。下架套餐可用于预览;归档套餐不返回。Apple 结算价格需以 StoreKit 商品信息为准。

请求

GET https://work.zingyang.com/api/sys/saas/plan/catalog

请求头:X-Access-Token: <平台登录token>。客户端仍可携带当前 X-Tenant-Id;目录是全局套餐定义,不返回任何租户的订阅信息。

参数 类型 说明
planCodes 字符串 必填,逗号分隔1–20个套餐编码;每个1–100字符,只允许英文字母、数字、下划线和连字符
curl --get 'https://work.zingyang.com/api/sys/saas/plan/catalog' \
  --header 'X-Access-Token: <平台登录token>' \
  --data-urlencode 'planCodes=cofree_plus_monthly,cofree_pro_monthly'

返回

以下为结构示例,不是线上实测响应:

{
  "success": true,
  "code": 200,
  "message": "",
  "result": [
    {
      "id": "<后台套餐ID>",
      "name": "CoFree Plus 月付",
      "code": "cofree_plus_monthly",
      "billingCycle": "month",
      "price": 69,
      "currency": "CNY",
      "appleProductId": "com.zingyang.Cofree.plus.monthly"
    }
  ]
}
字段 说明
id / code / name 后台套餐ID、编码、名称
billingCycle month、year、trial、custom;不要把未知周期显示为月付
price 后台配置价格,可能为空;不是最终Apple结算报价
currency 配置币种,可能为空;缺失时不要猜测币种
appleProductId Apple商品ID,可能为空;存在也不表示商品已审核或可购买

结果按后台价格升序排列。编码不存在、归档或没有匹配项时返回空数组。接口不返回内部备注、Apple管理日志和密钥,也不返回尚未配置的额度或编造赠送权益。

错误和客户端行为

  • 缺失/过期token:登录失败,按平台登录机制处理。
  • 参数缺失或格式非法:请求错误(400),不要自动改成查询全部套餐。
  • 网络或服务失败:显示友好的加载失败与重试按钮,不直接显示服务端路径或异常栈。
  • 切换账号或组织时取消旧请求并清空旧状态,丢弃旧会话的迟到响应。
  • 每次进入页面重新读取;失败不能悄悄回退到写死价格。

与已有接口的关系

/sys/saas/plan/list 仍是管理员管理接口,不供普通App获取套餐。 /dashboard/analysis/current-plan 查询当前组织已有订阅,不是待选择的套餐目录。 /talk/v1/subscription/plans 属于ZingTalk,包含Talk专属套餐和订阅逻辑,CoFree不应串用。 先前新增的 /sys/saas/cofree/plans 已从新版代码撤除,请使用本公共接口。

内容指纹 8594012e2f82