版本升级检查
接口说明
检查APP是否有新版本可供升级(对version_number进行比较),支持灰度发布和强制升级。
注意事项
- 支持多渠道升级管理,默认渠道为"default"
- 灰度发布逻辑:
- 通过device_uuid使用crc32算法计算得到一个值,所以
请务必保证同一设备uuid在app安装后一直不变
。
- 该值与灰度百分比进行比较,决定该设备是否在灰度范围内
- 只有在灰度范围内的设备才会收到升级提示
- 强制升级逻辑:
- 当服务端配置为强制升级时,客户端必须升级才能继续使用
- 当客户端版本号低于配置的最小版本号时,也会触发强制升级
- 版本号使用整数形式,便于比较大小
请求路径
Method |
URI Path |
鉴权方式 |
GET |
/v1/app/upgrade |
签名认证 |
请求参数
公共参数
参数名 |
类型 |
取值范围 |
是否必须 |
说明 |
appkey |
string |
- |
是 |
应用唯一标识 |
timestamp |
integer |
- |
是 |
请求时间戳(秒) |
sign |
string |
- |
是 |
签名,详见签名算法 |
业务参数
参数名 |
类型 |
是否必须 |
取值范围 |
默认值 |
说明 |
device_uuid |
string |
是 |
最大128字符 |
- |
设备唯一标识,用于灰度发布判断 |
version_number |
integer |
是 |
- |
- |
当前版本值(整数) |
channel_name |
string |
否 |
最大32字符 |
default |
渠道名称 |
请求示例代码
curl --location --request GET 'https://api.zaihangyun.com/v1/app/upgrade?appkey=D5fceA1sVtmaMY1F×tamp=1650381362&sign=5HC0kxCm2jsR3DpzhRJEFY3IfFvTcCN-8-qvvLCrKB8&device_uuid=abc123456789&version_number=100&channel_name=official' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: api.zaihangyun.com' \
--header 'Connection: keep-alive'
返回响应
{
"code": 200,
"msg": "success",
"data": {
"upgrade": true,
"force_upgrade": true,
"last_version": "1.2.0",
"last_version_number": 12,
"upgrade_from": 1,
"package_download_url": "https://download.example.com/app/v1.2.0.apk",
"package_size": "10.1M",
"package_md5": "a1b2c3d4e5f6g7h8i9j0",
"upgrade_note": "1. 修复已知问题\n2. 优化用户体验\n3. 新增功能"
}
}
{
"code": 200,
"msg": "success",
"data": {
"upgrade": true,
"force_upgrade": false,
"last_version": "1.2.0",
"last_version_number": 12,
"upgrade_from": 1,
"package_download_url": "https://download.example.com/app/v1.2.0.apk",
"package_size": "10.1M",
"package_md5": "a1b2c3d4e5f6g7h8i9j0",
"upgrade_note": "1. 修复已知问题\n2. 优化用户体验\n3. 新增功能"
}
}
{
"code": 200,
"msg": "success",
"data": {
"upgrade": false,
"force_upgrade": false,
"last_version": "1.2.0",
"last_version_number": 12,
"upgrade_from": 1,
"package_download_url": "https://download.example.com/app/v1.2.0.apk",
"package_size": "10.1M",
"package_md5": "a1b2c3d4e5f6g7h8i9j0",
"upgrade_note": "1. 修复已知问题\n2. 优化用户体验\n3. 新增功能"
}
}
{
"code": 400198,
"msg": "upgrade channel not found"
}
返回参数说明
参数名 |
类型 |
说明 |
upgrade |
boolean |
是否需要升级 |
force_upgrade |
boolean |
是否强制升级 |
last_version |
string |
最新版本号字符串 |
last_version_number |
integer |
最新版本号数值 |
upgrade_from |
integer |
升级方式:1:应用市场升级,2:官方链接下载或者其它方式 |
package_download_url |
string |
安装包下载地址 |
package_size |
string |
安装包大小 |
package_md5 |
string |
安装包MD5校验值 |
upgrade_note |
string |
升级说明,注意:包含换行符 |
错误码说明
查看全局错误码
错误码 |
说明 |
400101 |
device_uuid参数缺失 |
400102 |
device_uuid必须为字符串类型 |
400103 |
device_uuid长度不能超过128个字符 |
400104 |
channel_name必须为字符串类型 |
400105 |
channel_name长度不能超过32个字符 |
400109 |
version_number参数缺失 |
400110 |
version_number必须为整数类型 |
400198 |
升级渠道不存在 |
400199 |
版本记录不存在 |