验证授权码是否有效,检查域名、IP等限制条件。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| auth_code | string | 是 | 授权码 |
| domain | string | 是 | 域名 |
| ip | string | 是 | IP地址 |
{
"code": 1,
"msg": "授权有效",
"data": {
"id": 1,
"product_id": 1,
"product_version_id": 1,
"price_strategy_id": 1,
"uid": 1,
"domain": "example.com",
"domain_auth_type": 1,
"is_permanent": 2,
"auth_code": "QX-XXXXX-XXXXX-XXXXX",
"verify_type": 1,
"ip_switch_limit": 2,
"domain_verified": 1,
"is_active": 1,
"active_switch": 1,
"bind_ip_v4": "192.168.1.100",
"bind_ip_v6": "",
"start_time": "2024-01-01 00:00:00",
"end_time": "2025-01-01 00:00:00",
"status": 1,
"auth_price": 100.00,
"free_domain_num": 2,
"extra_domain_price": 10.00,
"replace_price": 0.00,
"replace_rule_type": 1,
"replace_expire_time": null,
"last_replace_time": null,
"replace_period": 0,
"auth_level": "专业版",
"auth_period": 365,
"tags": "",
"client_version": "1.0.0",
"last_used_ip": "192.168.1.100",
"last_used_time": "2024-01-15 10:00:00",
"auth_times": 100,
"auto_renew": 2,
"renewal_count": 0,
"remark": "",
"create_time": "2024-01-01 00:00:00",
"update_time": "2024-01-15 10:00:00",
"product_name": "产品名称"
}
}
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 授权主键ID |
| product_id | int | 商品ID |
| product_version_id | int | 商品版本ID |
| price_strategy_id | int | 初始价格策略ID |
| uid | int | 会员ID |
| domain | string | 授权绑定域名(多行分隔) |
| domain_auth_type | int | 域名授权方式:1=单域名 2=泛域名 |
| is_permanent | int | 是否永久授权:1=是 2=否 |
| auth_code | string | 唯一授权码 |
| verify_type | int | 验证方式:1=域名+IP 2=IP 3=域名 |
| ip_switch_limit | int | IP切换限制:1=限制 2=不限制 |
| domain_verified | int | 域名验证状态:1=已验证 2=未验证 |
| is_active | int | 授权激活状态:1=已激活 2=未激活 |
| active_switch | int | 前台查询开关:1=可查询 2=不可查询 |
| bind_ip_v4 | string | 绑定IPv4地址 |
| bind_ip_v6 | string | 绑定IPv6地址 |
| start_time | datetime | 授权生效时间 |
| end_time | datetime | 授权过期时间(永久为NULL) |
| status | int | 授权状态:1=正常 2=禁用 3=过期 4=封禁 |
| auth_price | decimal | 该授权实际价格 |
| free_domain_num | int | 该授权免费域名数 |
| extra_domain_price | decimal | 超出域名单价 |
| replace_price | decimal | 该授权更换价格 |
| replace_rule_type | int | 该授权更换规则:1=收费 2=禁止 3=限时 4=免费 5=定期 |
| replace_expire_time | datetime | 更换过期时间(规则3用) |
| last_replace_time | datetime | 上次更换时间(规则5用) |
| replace_period | int | 定期更换周期(月)(规则5用) |
| auth_level | string | 授权等级 |
| auth_period | int | 授权时长(天) |
| tags | string | 授权标签(逗号分隔) |
| client_version | string | 最后使用客户端版本 |
| last_used_ip | string | 最后使用IP |
| last_used_time | datetime | 最后使用时间 |
| auth_times | int | 授权验证次数 |
| auto_renew | int | 自动续费:1=开启 2=关闭 |
| renewal_count | int | 续费次数 |
| remark | string | 授权备注 |
| create_time | datetime | 创建时间 |
| update_time | datetime | 更新时间 |
| product_name | string | 商品名称 |
{
"code": 0,
"msg": "授权码不存在"
}
检查并获取更新包,仅返回update类型的更新包,必须提供当前版本号。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| auth_code | string | 是 | 授权码 |
| domain | string | 是 | 域名 |
| client_version | string | 是 | 客户端当前版本号 |
{
"code": 1,
"msg": "发现新版本",
"data": {
"auth_code": "QX-XXXXX-XXXXX-XXXXX",
"update_time": "2024-01-01 12:00:00",
"has_update": true,
"latest_version": {
"version_number": "1.1.0",
"package_type": "update",
"package_desc": "版本更新包",
"package_size": "2.5MB",
"package_path": "/QX/download/update_1.1.0.zip"
}
}
}
{
"code": 1,
"msg": "当前已是最新版本",
"data": {
"auth_code": "QX-XXXXX-XXXXX-XXXXX",
"update_time": "2024-01-01 12:00:00",
"has_update": false,
"latest_version": null
}
}
| 字段名 | 类型 | 说明 |
|---|---|---|
| auth_code | string | 授权码 |
| update_time | datetime | 更新时间 |
| has_update | bool | 是否有更新 |
| latest_version | object | 最新版本信息(若无则为null) |
| └ version_number | string | 版本号 |
| └ package_type | string | 包类型(仅返回update=更新包) |
| └ package_desc | string | 包描述 |
| └ package_size | string | 包大小 |
| └ package_path | string | 下载文件路径 |
{
"code": 0,
"msg": "当前版本号不能为空"
}
下载指定版本的程序包,必须提供授权码和域名进行验证。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| product_id | int | 是 | 产品ID |
| version_id | int | 否 | 版本ID(不传则下载最新版本) |
| auth_code | string | 是 | 授权码 |
| domain | string | 是 | 域名 |
成功时直接返回文件流(二进制下载),HTTP响应头如下:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="package_v1.0.0.zip"
Content-Length: 11010048
Cache-Control: no-cache
{
"code": 0,
"msg": "授权码不能为空"
}