心跳保活机制
登录只是「建立会话」,要让服务端知道「用户还在线」并持续刷新到期与状态,需要靠心跳。A7验证提供 UserHeartbeat 接口,由客户端定时上报。
为什么需要心跳
- 刷新在线状态:服务端记录最近一次心跳时间,可用于后台「在线用户」统计、异常掉线判断。
- 刷新到期时间:响应里回传最新的
expire_at,客户端据此判断是否需要提示续费。 - 接收后台消息:开发者在后台通过账号/激活记录的
remark字段下发消息(如「您的账号将于 3 天后到期」),心跳时会一并返回到data.msg,读取后由服务端清空(每条消息只下发一次)。
怎么调用
- 登录后拿到
Token(卡密登录来自SingleLogin,账号登录来自UserLogin)。 - 定时调用
UserHeartbeat,传入Token与Type:Type=card:卡密登录会话;Type=user:账号登录会话。
Type只支持card/user,其它值返回1013。
上报频率建议
| 场景 | 建议间隔 | 说明 |
|---|---|---|
| 普通桌面软件 | 5 分钟 | 平衡实时性与请求量 |
| 对实时性敏感(如远程控制) | 1 分钟 | 注意请求量随之增大 |
| 低频工具 | 10~15 分钟 | 只要窗口内有一次即可 |
心跳失败的处理
心跳失败不要弹窗打断用户。常见失败:1007 Token 失效(需重新登录)、1005 已过期(提示续费)、1006 已禁用。建议静默重试 2~3 次,仍失败再提示。
心跳返回示例
json
{
"code": 200,
"message": "success",
"data": {
"expire_at": "2026-09-01 12:00:00",
"status": "active",
"msg": ""
}
}若 msg 非空,说明后台有消息要告知用户,建议原样展示。