Skip to content

心跳保活机制

登录只是「建立会话」,要让服务端知道「用户还在线」并持续刷新到期与状态,需要靠心跳。A7验证提供 UserHeartbeat 接口,由客户端定时上报。

为什么需要心跳

  • 刷新在线状态:服务端记录最近一次心跳时间,可用于后台「在线用户」统计、异常掉线判断。
  • 刷新到期时间:响应里回传最新的 expire_at,客户端据此判断是否需要提示续费。
  • 接收后台消息:开发者在后台通过账号/激活记录的 remark 字段下发消息(如「您的账号将于 3 天后到期」),心跳时会一并返回到 data.msg,读取后由服务端清空(每条消息只下发一次)。

怎么调用

  • 登录后拿到 Token(卡密登录来自 SingleLogin,账号登录来自 UserLogin)。
  • 定时调用 UserHeartbeat,传入 TokenType
    • 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 非空,说明后台有消息要告知用户,建议原样展示。

相关链接

A7验证 · 软件授权与网络验证平台