# 用户版本上报
# 目录
# 接口说明
本接口用于客户端上报「用户当前使用的版本信息」,服务端按「用户 + 平台 + 设备」维度幂等保存,用于版本覆盖率、活跃版本、升级情况等统计分析。
# 接口介绍
该接口面向需要统计版本分布的应用场景。客户端在启动或登录后调用本接口,将当前版本号、数字版本号、设备信息、下载渠道、网络类型等上报至平台:
- 平台可按版本维度统计用户数与设备数,分析版本覆盖率与升级进度(可在开发者平台「版本管理模块 - 用户版本信息」页面查看,支持圆形统计图展示各版本占比);
幂等规则:同一 userId + platform + deviceId 只保留一条记录,重复上报时更新该记录(不会产生重复数据);未传 deviceId 时按 userId + platform 维度判定。
# 接口配置入口
- 登录氦闪 开发者平台 (opens new window)
- "接口管理" 》 "平台接口" 》 "模块API" 》 "版本管理模块"
- 选择 "用户版本上报"
- 右上角选择开启
提示:此接口数据持久化使用 MongoDB 数据库,请确保已配置相关数据源。 多租户数据源按请求头
APPID自动切换,请求体无需传appid。
# 接口调用
# 用户版本上报
- 接口地址:
https://lb/business-service/hiasoon-versionmanagercenter/open/report - 返回格式:json
- 请求方式:POST
- 请求示例:
{
"userId": "UID202604160001",
"platform": "ANDROID",
"versionNumber": "2.1.0",
"versionCode": 20100,
"versionid": "6650f2b8c1a2b3d4e5f60718",
"deviceId": "a1b2c3d4e5f60718293a4b5c6d7e8f90",
"deviceName": "Xiaomi 14",
"deviceType": "PHONE",
"osVersion": "Android 14",
"channel": "HuaweiStore",
"networkType": "WIFI"
}
# 请求头:
| 参数名称 | 类型 | 说明 | 是否必填 |
|---|---|---|---|
| APPID | string | 开发者平台分配的应用APPID | 是 |
| _t | number | 请求时间戳(毫秒级) | 是 |
| _s | string | 签名信息,用于接口安全验证 | 是 |
| _n | string | 随机数 | 是 |
| Authorization | string | Bearer {token},访问令牌(本接口必须登录) | 是 |
注意:本接口需要登录态,必须携带有效的
Authorization请求头。
# 请求体(json):
| 参数名称 | 类型 | 说明 | 是否必填 |
|---|---|---|---|
| userId | string | 用户唯一标识(用户ID) | 是 |
| platform | string | 平台类型:WEB/ANDROID/IOS/WINDOWS/MACOS/LINUX/SDK/PLUGIN | 是 |
| versionNumber | string | 版本号,格式 x.x.x 或 v.x.x.x,如 2.1.0 | 否 ※ |
| versionCode | number | 数字版本号,如 20100 | 否 ※ |
| versionid | string | 版本ID(开发者平台的版本记录主键,可选,便于精确关联版本) | 否 |
| deviceId | string | 设备唯一标识(IDFA/OAID/设备指纹哈希等) | 否 |
| deviceName | string | 设备名称/型号,如 Xiaomi 14、iPhone 15 Pro | 否 |
| deviceType | string | 设备类型:PHONE/TABLET/PC/WEB/UNKNOWN | 否 |
| osVersion | string | 操作系统版本,如 Android 14、iOS 17.5 | 否 |
| channel | string | 下载渠道,如 AppStore、HuaweiStore、OfficialSite | 否 |
| networkType | string | 网络类型:WIFI/4G/5G/UNKNOWN | 否 |
※ 说明:
versionNumber与versionCode至少填写一个,两者都为空时接口返回「版本号(versionNumber)或数字版本号(versionCode)不能为空」。
# 响应头:
| 参数名称 | 类型 | 说明 | 是否必填 |
|---|---|---|---|
| connectionid | string | 本次请求的唯一标识 | 是 |
| _t | number | 响应时间戳(毫秒级) | 是 |
| _s | string | 响应签名信息,用于防篡改校验 | 是 |
| _n | string | 随机数(与本次请求的值一致) | 是 |
# 返回参数(json)
| 参数名称 | 类型 | 说明 |
|---|---|---|
| code | number | 返回状态码,200 表示成功,其他表示失败 |
| message | string | 返回信息描述(成功时为「版本信息上报成功」) |
| data | string | 上报记录的 MongoDB 主键 ID |
| info | object | 附加信息,一般为 null |
返回参数示例:
{
"code": 200,
"message": "版本信息上报成功",
"data": "6650f2b9c1a2b3d4e5f60719",
"info": null
}
失败示例(缺少必填参数):
{
"code": 18000,
"message": "业务处理失败:平台类型不能为空",
"data": null,
"info": null
}