查询配额余量

  1. 请求地址:GET /quota
  2. 接口概述:

查询配额余量。撤销/过期批次不计入;无生效批次的产品不出现。

  1. 请求参数:

    无

  2. 请求体:

    无

  3. 请求示例:

GET {api-base-url}/quota HTTP/1.1
bitkey: ••••••
  1. 响应示例:
{
    "status": 0,
    "data": {
        "total": 1,
        "items": [
            {
                "productName": "HJ-ProductA",
                "features": [
                    {
                        "name": "license-core",
                        "version": "99.1",
                        "totalQuota": 1000,
                        "totalQuotaUsage": 120,
                        "endDate": "2027-12-31 23:59:59"
                    }
                ]
            }
        ]
    }
}

响应体说明

申请发放

  1. 请求地址:POST /quota/update_code
  2. 接口概述:

申请发放授权。

  1. 请求参数:

    无

  2. 请求体:

参数名 参数类型 必需 参数说明
productName string ✅ 产品名称
businessName string ✅ 业务名称;单机/集团类型由此判定;仅支持FLOAT/LOCAL(单机浮动)与GROUP(集团)类型,其余类型返回515
mac string ✅ 终端设备MAC,License与之绑定;整单同一设备
endDate string ➖ yyyy-MM-dd;整单缺省到期日,未指定模版级endDate的模版回退此值
templates array ✅ 模版申请列表,至少一项;同一申请内模版名不可重复
templates[].templateName string ✅ 模版名称
templates[].count integer ✅ ≥1;单机业务固定1;集团业务=用户数(每命中特征项扣count点)
templates[].endDate string ➖ yyyy-MM-dd;模版级到期日,优先于顶层endDate;上限=本模版命中特征项的最早批次结束日期,越界整单拒绝
templates[].version string ➖ 模版级特征项版本(如2.0),按集团版本规则匹配模版内版本特征项,见下方业务规则「版本参数」
  1. 请求示例:
POST {api-base-url}/quota/update_code HTTP/1.1
bitkey: ••••••
Content-Type: application/json

{
    "productName": "HJ-ProductA",
    "businessName": "Tenant_XYZ",
    "mac": "00:11:22:33:44:55",
    "endDate": "2027-12-31",
    "templates": [
        { "templateName": "Simulator", "count": 1, "endDate": "2027-06-30" },
        { "templateName": "Debugger", "count": 3 }
    ]
}
  1. 响应示例:
{
    "status": 0,
    "data": {
        "items": [
            { "code": "<bitLicenseList>…多模版合并 License…</bitLicenseList>" }
        ]
    }
}

业务规则

  • 业务类型:仅支持FLOAT/LOCAL(单机浮动)与GROUP(集团)类型业务,其余类型(云/USB/帐号授权等)返回515拒绝。

  • 扣点:单机业务每命中特征项扣1点(count固定1);集团业务每命中特征项扣count点。 余量按特征项记账、跨模版共享——模版只是扣点路由,同一份余量可发任何模版组合。

  • 覆盖范围:申请模版所含的每个特征项都必须已有生效批次额度,任一特征项无额度即整单拒绝(21006)。

  • 到期日(逐模版独立确定):templates[].endDate→顶层endDate→该模版命中特征的最早批次结束日期; 上限=该模版自己的最早批次结束日期(各模版分别约束,互不压缩);不支持永久授权。

  • 版本参数(templates[].version非空时生效,逐模版独立;比较规则同集团按版本占用特征项:按major.minor数值比较、忽略前导零、无小数点视作.0):

    • 记录版本=输入版本:直接匹配,License携带记录版本;
    • 记录版本高于输入版本:License以输入版本发放(要求该产品特征项已开启"可修改值",否则515整单拒绝);扣点仍按记录特征项计;
    • 记录版本低于输入版本:额度未覆盖该版本,515整单拒绝;
    • 非版本特征项不受影响,原样发证;改写后同一模版内出现同名同版本特征项→1291整单拒绝。
  • 原子性:任一模版校验失败整单拒绝、零扣减;同一成员的申请串行处理,并发不超发。

  • 操作日志:成功发放自动记录申请参数审计日志(不含License明文,需平台侧开启选项)。

查询申请记录

  1. 请求地址:POST /quota/queries
  2. 接口概述:

查询授权申请记录。

  1. 请求参数:

    无

  2. 请求体:

字段 类型 必需 说明
querys array ➖ 查询条件,仅支持regDate(授权码注册时间)
querys[].name string ✅ 固定regDate
querys[].op string ✅ =、<>、>、>=、<、<=、like
querys[].values array ✅ 支持yyyy-MM-dd与yyyy-MM-dd HH:mm:ss;非法日期值返回参数错误

分页参数走URL query:offset(默认0)、limit(默认50,最大1000)。

  1. 请求示例:
POST {api-base-url}/quota/queries?offset=0&limit=50 HTTP/1.1
bitkey: ••••••
Content-Type: application/json

{ "querys": [ { "name": "regDate", "op": ">=", "values": ["2026-09-01"] } ] }
  1. 响应示例:
{
    "status": 0,
    "data": {
        "total": 2,
        "items": [
            {
                "productName": "HJ-ProductA",
                "templateName": "Simulator",
                "regDate": "2026-09-23 10:20:30"
            }
        ]
    }
}

查询配额批次

  1. 请求地址:GET /quota/batches
  2. 接口概述:

查询配额批次。含已撤销/已过期批次,供对账审计。

  1. 请求参数:

    无

  2. 请求体:

    无

  3. 请求示例:

    无

  4. 响应示例:

{
    "status": 0,
    "data": {
        "total": 1,
        "items": [
            {
                "productName": "HJ-ProductA",
                "regDate": "2026-09-01 09:00:00",
                "endDate": "2027-12-31 23:59:59",
                "comment": "2026年度额度",
                "status": 0,
                "features": [
                    { "name": "license-core", "quota": 1000, "used": 120 }
                ]
            }
        ]
    }
}

响应体说明