生成授权码

  1. 请求地址:POST /sns/generate_sn

  2. 接口概述:

    指定产品、模版、业务和数量后生成指定类型、指定数量的授权码。

  3. 请求参数:

    参数名 参数类型 参数说明 必需 备注
    count integer 生成数量 是 1-100之间
    productName string 产品名 否 产品名在参数与请求体中必须存在一个(推荐在请求体设置产品名)
    templateName string 模版名 否 模版名在参数与请求体中必须存在一个(推荐在请求体设置模版名)
    businessName string 业务名 否 业务名在参数与请求体中必须存在一个(推荐在请求体设置业务名)
    config string 配置 否 当设置为generate:sn:feature时表示为SN添加专属特征项
  4. 请求体:

    参数名 参数类型 参数说明 必需 备注
    startDate string 起始日期 否 yyyy-MM-dd HH:mm:ss
    endDate string 结束日期 否 yyyy-MM-dd HH:mm:ss
    volumeNumber integer 终端限制 否
    expirationDays integer 有效期(天) 否
    usageNumber integer 使用次数 否
    concurrentNumber integer 并发数 否
    usersNumber integer 用户数 否
    maxOfflineMinutes integer 离线时间(分钟) 否 可作为强制认证的时间
    transferVolume integer 转移数 否
    transferNumber integer 转移次数 否
    description string 描述信息 否
    accessLog boolean 用量统计 否 仅对集团授权有效(选择后不可解除)
    distribution boolean 授权分发 否 仅对集团授权有效(选择后不可解除)
    ignoreUserLimit boolean 忽略用户数 否 仅对集团授权有效(选择后不可解除)
    redundant boolean 冗余检查 否 仅对集团授权有效(选择后不可解除)
    namedUser boolean 帐号授权 否 仅对云授权有效(选择后不可解除)
    vmDetect boolean 虚拟机检测 否 (选择后不可解除)
    forbidRemoteDesktop boolean 远程桌面检测 否 (选择后不可解除)
    licenseBorrow boolean 授权借出 否 (选择后不可解除)
    readonly boolean 授权只读 否 (选择后不可解除)
    product object 产品 否 产品名在参数与请求体中必须存在一个(推荐在请求体设置产品名)
    business object 业务 否 业务名在参数与请求体中必须存在一个(推荐在请求体设置业务名)
    template object 模版 否 模版名在参数与请求体中必须存在一个(推荐在请求体设置模版名),只有产生集团授权才支持传模版倍数templateQuantity
    features array 特征项列表 否 为授权码设置特征项
    data array 配置项列表 否 为授权码设置配置项

    features

    参数名 参数类型 参数说明 必需 备注
    id long 特征项的uid 否
    guid string 特征项的guid 否
    featureId integer 特征项的fid 否
    name string 特征性的名称 否
    value long 特征性的值 否 特征项的整数值(不含小数点)。当特征项的值为整数时,使用本字段。
    version string 特征性的版本 否 特征项的带小数值(含小数点)。当特征项的值为版本号等带小数的数值时,使用本字段。
    endDate string 结束时间 否
    expirationDays integer 有效期 否
    users integer 用户数 否
    type string 特征项的操作 否 操作类型:OVERRIDE(默认):为授权码勾选并覆盖产品特征项内容,SELECT:为授权码勾选产品的特征项,UNSELECT:为授权码取消勾选模版中的特征项

    确定特征项的方式:

    1、根据特征项的id确定唯一特征项(id存在)

    2、根据特征项的guid确定唯一特征项(guid存在)

    3、根据特征项的名称、特征项版本确定唯一特征项(name存在、version存在)

    4、根据特征项的fid、特征项版本确定唯一特征项(fid存在、version存在)

    5、根据特征项的名称、特征项值确定唯一特征项(name存在、value存在)

    6、根据特征项的名称确定唯一特征项,存在多个则报错(name存在)

    7、根据特征项的fid、特征项值确定唯一特征项,存在多个则报错(fid存在、value存在)

    8、根据特征项的fid确定唯一特征项,存在多个则报错(fid存在)

    data:

    参数名 参数类型 参数说明 必需 备注
    name string 配置项名称 是 存在同名配置项时会覆盖值
    value string 配置项值 否 未传值时表示设置为空
  5. 请求示例

    生成SN设置SN属性,为SN勾选、取消勾选、覆盖特征项,并为SN添加配置项:

    POST /bitanswer/api/sns/generate_sn?count=1 HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    {
       "product": {
           "productName": "{product_name}"
       },
       "template": {
           "name": "{template_name}",
           "templateQuantity":10
       },
       "business": {
           "name": "{business_name}"
       },
       "usersNumber": 100,
       "startDate": "2024-07-20",
       "forbidRemoteDesktop": true,
       "features": [
           {
               "featureId": 1001,
               "users": 10,
               "value": 1001,
               "type":"UNSELECT"
           },
           {
               "featureId": 1002,
               "users": 10,
               "value": 1002,
               "expirationDays":30,
               "type":"OVERRIDE"
           },
           {
               "featureId": 1001,
               "users": 10,
               "value": 1001,
               "type":"SELECT"
           }
       ],
       "data": [
           {
               "name": "test",
               "value": "test"
           }
       ]
    }

    生成SN设置SN属性,为SN添加专属特征项,并为SN添加配置项:

    POST /bitanswer/api/sns/generate_sn?count=1&config=generate:sn:feature HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    {
       "product": {
           "productName": "{product_name}"
       },
       "template": {
           "name": "{template_name}",
           "templateQuantity":10
       },
       "business": {
           "name": "{business_name}"
       },
       "usersNumber": 100,
       "startDate": "2024-07-20",
       "forbidRemoteDesktop": true,
       "features": [
           {
               "name": "test_overload_1",
               "value": 1001
           },
           {
               "name": "test_overload_2",
               "value": 2220
           },
           {
               "name": "test_overload_2",
               "version": "0.2220"
           }
       ],
       "data": [
           {
               "name": "test",
               "value": "test"
           }
       ]
    }
  6. 响应示例

    {
       "status": 0,
       "data": {
           "total": 1,
           "items": [
               {
                   "sn": "xxxxx",
                   "status": 0,
                   "startDate": "2024-07-20 00:00:00",
                   "updateTime": "2024-07-29 18:13:11",
                   "regDate": "2024-07-29 18:13:11",
                   "type": "GROUP",
                   "volumeNumber": 1,
                   "concurrentNumber": 1,
                   "usersNumber": 100,
                   "transferVolume": 0,
                   "forbidRemoteDesktop": true
               }
           ]
       }
    }

    响应体说明

查询指定授权码

  1. 请求地址:GET /sns/{sn}

  2. 接口概述:

    查询指定授权码的信息。

  3. 请求参数:

    地址参数

    参数名 参数类型 参数说明 必需 备注
    sn string 授权码 是
    scope string 设置返回信息的范围,是否包含产品、模版、业务等信息 是 scope用法

    如何使用scope?

  4. 请求体:

    无

  5. 请求示例:

    GET /bitanswer/api/sns/{sn} HTTP/1.1
    Host: back-office-api.bitanswer.cn
    bitkey: ••••••
  6. 响应示例:

    {
       "status": 0,
       "data": {
           "total": 1,
           "items": [
               {
                   "sn": "xxxxxxxxxxxxxxxx",
                   "activeDate": "2024-07-02 21:30:06",
                   "activeType": "online",
                   "status": 0,
                   "updateTime": "2024-07-02 21:30:06",
                   "regDate": "2024-07-02 21:29:58",
                   "type": "LOCAL",
                   "volumeNumber": 2,
                   "expirationDays": 30,
                   "concurrentNumber": 1,
                   "transferVolume": 0,
                   "transferNumber": 0
               }
           ]
       }
    }

    响应体说明

更新指定授权码

  1. 请求地址:PATCH /sns/{sn}

  2. 接口概述:

    更新指定授权码信息,仅对请求中明确输入的内容进行修改,其他内容保持原有值不变。

  3. 请求参数:

    地址参数

    参数名 参数类型 参数说明 必需 备注
    sn string 授权码 是
  4. 请求体:

    参数名 参数类型 参数说明 必需 备注
    sn string 授权码,用于精确定位 是
    status integer 状态 是 授权码状态:0:正常,1:禁用,2:删除,4:黑名单
    startDate string 起始日期 否 yyyy-MM-dd HH:mm:ss或yyyy-MM-dd,当为yyyy-MM-dd时,代表yyyy-MM-dd 00:00:00
    endDate string 结束日期 否 yyyy-MM-dd HH:mm:ss或yyyy-MM-dd,当为yyyy-MM-dd时,代表yyyy-MM-dd 23:59:59
    volumeNumber integer 终端限制 否
    expirationDays integer 有效期(天) 否
    usageNumber integer 使用次数 否
    concurrentNumber integer 并发数 否
    usersNumber integer 用户数 否
    maxOfflineMinutes integer 离线时间(分钟) 否 可作为强制认证的时间
    transferVolume integer 转移数 否
    transferNumber integer 转移次数 否
    accessLog boolean 用量统计 否 仅对集团授权有效(选择后不可解除)
    distribution boolean 授权分发 否 仅对集团授权有效(选择后不可解除)
    ignoreUserLimit boolean 忽略用户数 否 仅对集团授权有效(选择后不可解除)
    redundant boolean 冗余检查 否 仅对集团授权有效(选择后不可解除)
    namedUser boolean 帐号授权 否 仅对云授权有效(选择后不可解除)
    vmDetect boolean 虚拟机检测 否 (选择后不可解除)
    forbidRemoteDesktop boolean 远程桌面检测 否 (选择后不可解除)
    licenseBorrow boolean 授权借出 否 (选择后不可解除)
    readonly boolean 授权只读 否 (选择后不可解除)
  5. 请求示例:

    PATCH /bitanswer/api/sns/{sn} HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    {
       "startDate": "2024-07-20",
       "volumeNumber": 3,
       "expirationDays": 365,
       "vmDetect" :true,
       "forbidRemoteDesktop": true
    }
  6. 响应示例:

    {
       "status": 0,
       "data": {
           "total": 1,
           "items": [
               {
                   "sn": "xxxxx",
                   "lastUpdateDate": "2024-07-02 21:30:06",
                   "activeDate": "2024-07-02 21:30:06",
                   "activeType": "online",
                   "status": 0,
                   "startDate": "2024-07-20 00:00:00",
                   "updateTime": "2024-08-13 20:02:26",
                   "regDate": "2024-07-02 21:29:58",
                   "type": "LOCAL",
                   "volumeNumber": 3,
                   "expirationDays": 365,
                   "concurrentNumber": 1,
                   "transferVolume": 0,
                   "transferNumber": 0,
                   "vmDetect": true,
                   "forbidRemoteDesktop": true
               }
           ]
       }
    }

    响应体说明

删除指定授权码

  1. 请求地址:DELETE /sns/{sn}

  2. 接口概述:

    删除指定授权码信息。

  3. 请求参数:

    地址参数

    参数名 参数类型 参数说明 必需 备注
    sn string 授权码 是
  4. 请求体:

    无

  5. 请求示例:

    DELETE /bitanswer/api/sns/{sn} HTTP/1.1
    Host: back-office-api.bitanswer.cn
    bitkey: ••••••
  6. 响应示例:

    {
       "status": 0,
       "data": {
           "total": 1,
           "items": [
               {
                   "sn": "xxxxxx"
               }
           ]
       }
    }

遍历授权码

  1. 请求地址:GET /sns

  2. 接口概述:

    遍历查询所有授权码。

  3. 请求参数:

    参数名 参数类型 参数说明 必需 备注
    scope string 设置返回信息的范围,是否包含产品、模版、业务等信息 否 scope用法
    offset integer 响应结果起始下标 否 默认0
    limit integer 响应结果的数量 否 默认50,最大1000

    如何遍历? 如何使用scope?

  4. 请求体:

    无

  5. 请求示例

    GET /bitanswer/api/sns?offset=0&limit=1 HTTP/1.1
    Host: back-office-api.bitanswer.cn
    bitkey: ••••••
  6. 响应示例

    {
       "status": 0,
       "data": {
           "total": 94,
           "items": [
               {
                   "sn": "xxxxxx",
                   "status": 0,
                   "updateTime": "2022-11-16 14:12:43",
                   "regDate": "2022-11-16 14:10:11",
                   "type": "LOCAL",
                   "volumeNumber": 1,
                   "expirationDays": 30,
                   "concurrentNumber": 1,
                   "transferVolume": 0,
                   "transferNumber": 0
               }
           ]
       }
    }

    响应体说明

查询授权码

  1. 请求地址:POST /sns/data

  2. 接口概述:

    根据限定的条件查询、排序符合的授权码。

  3. 请求参数:

    参数名 参数类型 参数说明 必需 备注
    scope string 设置返回信息的范围,是否包含产品、模版、业务等信息 否 scope用法
    offset integer 响应结果起始下标 否 默认0
    limit integer 响应结果的数量 否 默认50,最大1000

    如何遍历? 如何使用scope?

  4. 请求体:

    参数名 参数类型 参数说明 必需 备注
    querys array 查询参数 否
    sorts array 排序参数 否

    如何查询?

    querys

    支持:sn,lastUpdateDate,activeDate,startDate,endDate,updateTime,regDate,type,expirationDays;

    type可选的值有:Cloud,Local,Float,Bit_ID,Bit_ID_Float,Demo,Try,Pre,USB,Group,Bit_ID_Group。

    sorts

    支持:sn。

    参数说明

  5. 请求示例

    POST /bitanswer/api/sns/data HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    {
       "querys": [
           {
               "name": "type",
               "op": "=",
               "values": [
                   "local"
               ]
           }
       ],
       "sorts": [
           {
               "name": "sn"
           }
       ]
    }
  6. 响应示例

    {
       "status": 0,
       "data": {
           "total": 2,
           "items": [
               {
                   "sn": "xxx1",
                   "lastUpdateDate": "2024-06-24 16:23:37",
                   "activeDate": "2024-06-24 15:53:33",
                   "activeType": "online",
                   "status": 0,
                   "updateTime": "2024-06-24 15:53:33",
                   "regDate": "2024-06-24 15:49:09",
                   "type": "LOCAL",
                   "volumeNumber": 100,
                   "concurrentNumber": 1,
                   "transferVolume": 0
               },
               {
                   "sn": "xxx2",
                   "lastUpdateDate": "2024-06-25 16:56:54",
                   "activeDate": "2024-06-25 11:09:31",
                   "activeType": "online",
                   "status": 0,
                   "updateTime": "2024-06-25 11:09:31",
                   "regDate": "2024-06-25 10:54:21",
                   "type": "LOCAL",
                   "volumeNumber": 100,
                   "concurrentNumber": 1,
                   "transferVolume": 0
               }
           ]
       }
    }

    响应体说明

批量更新授权码

  1. 请求地址:

    • PATCH /sns
    • POST /sns
  2. 接口概述:

    根据输入内容查找并更新授权码信息,目前仅支持通过sn查找。

    PATCH 方法用于部分更新数据,仅对请求中明确输入的内容进行修改,其他内容保持原有值不变。

    POST 方法用于全量重置数据,会以请求中输入的内容覆盖原有值,未输入内容则被置为空值。(不推荐用于部分更新数据,易导致未输入数据被误清空)

    accessLog、distribution、ignoreUserLimit、namedUser、vmDetect、forbidRemoteDesktop、licenseBorrow、readonly只在传入值时做改动,未输入时不发生变动。

  3. 请求参数:

    无

  4. 请求体:

    参数名 参数类型 参数说明 必需 备注
    sn string 授权码,用于精确定位 是
    status integer 状态 否 授权码状态:0:正常,1:禁用,2:删除,4:黑名单
    startDate string 起始日期 否 yyyy-MM-dd HH:mm:ss或yyyy-MM-dd,当为yyyy-MM-dd时,代表yyyy-MM-dd 00:00:00
    endDate string 结束日期 否 yyyy-MM-dd HH:mm:ss或yyyy-MM-dd,当为yyyy-MM-dd时,代表yyyy-MM-dd 23:59:59
    volumeNumber integer 终端限制 否
    expirationDays integer 有效期(天) 否
    usageNumber integer 使用次数 否
    concurrentNumber integer 并发数 否
    usersNumber integer 用户数 否
    maxOfflineMinutes integer 离线时间(分钟) 否 可作为强制认证的时间
    transferVolume integer 转移数 否
    transferNumber integer 转移次数 否
    accessLog boolean 用量统计 否 仅对集团授权有效(选择后不可解除)
    distribution boolean 授权分发 否 仅对集团授权有效(选择后不可解除)
    ignoreUserLimit boolean 忽略用户数 否 仅对集团授权有效(选择后不可解除)
    redundant boolean 冗余检查 否 仅对集团授权有效(选择后不可解除)
    namedUser boolean 帐号授权 否 仅对云授权有效(选择后不可解除)
    vmDetect boolean 虚拟机检测 否 (选择后不可解除)
    forbidRemoteDesktop boolean 远程桌面检测 否 (选择后不可解除)
    licenseBorrow boolean 授权借出 否 (选择后不可解除)
    readonly boolean 授权只读 否 (选择后不可解除)

    请求体以数组形式输入。

  5. 请求示例:

    PATCH /bitanswer/api/sns HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    [
       {
           "sn":"xxxxxx",
           "expirationDays":120
       }
    ]
  6. 响应示例:

    {
       "status": 0,
       "data": {
           "total": 1,
           "items": [
               {
                   "sn": "xxxxxx",
                   "status": 0,
                   "startDate": "2024-06-01 00:00:00",
                   "endDate": "2024-12-01 23:59:59",
                   "updateTime": "2024-08-12 13:36:05",
                   "regDate": "2022-11-16 14:10:11",
                   "type": "LOCAL",
                   "volumeNumber": 3,
                   "expirationDays": 120,
                   "concurrentNumber": 1,
                   "transferVolume": 0,
                   "transferNumber": 0
               }
           ]
       }
    }

    响应体说明

批量删除授权码

  1. 请求地址:DELETE /sns

  2. 接口概述:

    批量删除授权码。

  3. 请求参数:

    无

  4. 请求体:

    参数名 参数类型 参数说明 必需 备注
    array 授权码列表 是 由string类型组成的数组
  5. 请求示例:

    DELETE /bitanswer/api/sns HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    [
       "xxxxx1",
       "xxxxx2"
    ]
  6. 响应示例:

    {
       "status": 0,
       "data": {
           "total": 2,
           "items": [
               {
                   "sn": "xxxxx1"
               },
               {
                   "sn": "xxxxx2"
               }
           ]
       }
    }

批量归档授权码

  1. 请求地址:POST /sns/archive

  2. 接口概述:

    批量归档授权码。

  3. 请求参数:

    无

  4. 请求体:

    参数名 参数类型 参数说明 必需 备注
    array 授权码列表 是 由string类型组成的数组
  5. 请求示例:

    POST /bitanswer/api/sns/archive HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    [
       "xxxxx1",
       "xxxxx2"
    ]
  6. 响应示例:

    {
       "status": 0,
       "data": {
           "total": 2,
           "items": [
               {
                   "sn": "xxxxx1"
               },
               {
                   "sn": "xxxxx2"
               }
           ]
       }
    }

批量取消归档授权码

  1. 请求地址:POST /sns/unarchive

  2. 接口概述:

    批量取消归档授权码。

  3. 请求参数:

    无

  4. 请求体:

    参数名 参数类型 参数说明 必需 备注
    array 授权码列表 是 由string类型组成的数组
  5. 请求示例:

    POST /bitanswer/api/sns/unarchive HTTP/1.1
    Host: back-office-api.bitanswer.cn
    Content-Type: application/json
    bitkey: ••••••
    
    [
       "xxxxx1",
       "xxxxx2"
    ]
  6. 响应示例:

    {
       "status": 0,
       "data": {
           "total": 2,
           "items": [
               {
                   "sn": "xxxxx1"
               },
               {
                   "sn": "xxxxx2"
               }
           ]
       }
    }