请求参数说明
| 名称 | 变量 | 必填 | 类型 | 说明 |
| 接口 |
api |
是 |
GET |
填写 userheartbeat |
| 应用 |
app |
是 |
GET |
填写后台应用APPID |
| 账号 |
user |
是 |
GET/POST |
账号登录的用户名(与 userlogon 接口保持一致) |
| 密码 |
password |
是 |
GET/POST |
账号密码(与 userlogon 接口保持一致,用于心跳时再次验证账号密码) |
| 时间戳 |
t |
否 |
GET/POST |
如果开启了[时间差效验]需提交此项 |
| 数据签名 |
sign |
否 |
GET/POST |
如果开启了[数据签名]需提交此项(算法与其他接口一致,详见Sign说明) |
返回参数说明
| 名称 | 类型 | 说明 |
| code |
String |
返回状态码,200 表示心跳成功,其它为错误码 |
| msg |
Mixed |
当 code!=200 时为错误提示字符串;
当 code=200 时为账号信息对象,主要字段:user(账号)、qq、name(昵称)、vip(VIP到期时间)、ban(账号到期时间)、ban_notice(封禁提示)、pic(头像地址)、fen(积分)、rmb(余额)
|
| time |
String |
服务器当前时间戳,秒级,10 位 |
| check |
String |
二次效验值,与其他接口保持一致(算法说明见 Sign 说明) |
返回示例
// 心跳正常
{
"code": 200,
"msg": {
"user": "test_user",
"qq": "123456",
"name": "测试用户",
"vip": "2026-12-31 23:59:59",
"ban": "2030-01-01 00:00:00",
"ban_notice": "",
"pic": "https://example.com/avatar.png",
"fen": "100",
"rmb": "10.00"
},
"time": 1761200000,
"check": "40c61b5c845ce218122a0e4309d6b72e"
}
<br>
// 心跳间隔超时(超过 heartbeat_timeout 秒)
{
"code": 153,
"msg": "心跳间隔超时(超过300秒),连接已失效,请重新登录",
"time": 1761200300,
"check": "dc3b764154ec4e7977c3d451947b05d4"
}
<br>
// 账号被封禁
{
"code": 114,
"msg": "账号已被封禁,请联系管理员",
"time": 1761200400,
"check": "a83e3b51d1b1c1633fcca53a9b220b03"
}
<br>
// VIP 已到期
{
"code": 175,
"msg": "VIP已到期",
"time": 1761200500,
"check": "8562d8fd7d841b4271a9e420f0eb3a2c"
}
<br>
// 账号已到期
{
"code": 176,
"msg": "账号已到期",
"time": 1761200600,
"check": "a58c19f1d60ab53a6e51dd41efff58b1"
}
<br>
// 积分为 0(在应用开启积分校验时)
{
"code": 177,
"msg": "积分为0",
"time": 1761200700,
"check": "00ec3bfa0b472ea190384891f5a0b6c0"
}
错误码格式说明
| 名称 | 类型 | 说明 |
|---|
| 101 |
String |
应用不存在 |
| 102 |
String |
应用已关闭 |
| 171 |
String |
接口维护中 |
| 172 |
String |
接口未添加或不存在 |
| 100 |
String |
应用配置未加载 |
| 110 |
String |
账号为空(user 未提交) |
| 111 |
String |
密码为空 |
| 113 |
String |
账号或密码错误 |
| 114 |
String |
账号被封禁,返回后台设置的封禁提示 |
| 122 |
String |
账号不存在 |
| 153 |
String |
心跳间隔超时,连接已失效,需要重新登录 |
| 175 |
String |
VIP 已到期 |
| 176 |
String |
账号已到期 |
| 177 |
String |
积分为 0(在应用开启积分校验时) |
代码示例
// 账号心跳请求示例(伪代码说明)
{
// 接口地址:
// https://你的域名/api.php?api=userheartbeat&app=应用ID
//
// 按账号心跳(与 userlogon 一致):
// 提交参数:user=账号 & password=密码
//
// 如开启时间差效验:
// 额外提交:t=当前时间戳
//
// 如开启数据签名:
// 按照“将所有 POST 提交参数拼接后 + &APPKEY 取 MD5 值”的规则计算 sign,并一同提交
}