易语言接入 A7验证 完整教程
本教程面向易语言开发者,目标是 30 分钟内完成「程序启动 → 卡密登录 → 心跳保活 → 退出」。所有代码基于 易语言 SDK 页的 A7Client 模块。
准备工作
- 在 主站 注册并创建程序,拿到
AppId与AppKey。见 获取 AppID 与 API 密钥。 - 准备一张卡密(或通过
UserRegin+ 卡密注册激活)。 - 易语言安装精易模块(提供
类_json、网页访问等命令)。
第一步:新建模块,放入核心算法
把 易语言 SDK 页的 RC4加密、MD5签名、A7Client 三个部分复制到你的模块。
MD5签名直接调用易语言自带的取数据摘要 ()。RC4加密为手写实现,返回十六进制文本。
第二步:程序启动时握手
epl
.子程序 _启动子程序
初始化 ("150018", "YOUR_APP_KEY")
Init握手 ()
调试输出 ("ApiPassword=", ApiPassword)时间戳要对
Init握手 里的 取秒级时间戳 () 必须返回正确的 Unix 秒级时间,否则返回 1014。若你的实现不准,先用 调试输出 打印与服务端时间差是否在 300 秒内。
第三步:卡密登录
拼接明文参数并调用 SingleLogin:
epl
plain = "Card=" + 编辑框_卡密.内容 + "&Mac=" + 取机器码 () + "&DeviceName=MyPC"
resp = 调用 ("SingleLogin", plain)成功时从 data.token 取 Token,失败按 code 提示(卡密无效 1004、已过期 1005、黑名单 1023 等)。完整错误码见 错误码对照表。
第四步:心跳保活
用一个时钟组件(周期 300000 毫秒 = 5 分钟)定时调用:
epl
.子程序 _时钟1_周期事件
.局部变量 hb, 文本型
hb = 调用 ("UserHeartbeat", "Token=" + token + "&Type=card")
' 解析 code:1007=Token 失效需重新登录,1005=已过期- 卡密登录的 Token 用
Type=card,用户登录用Type=user(详见 心跳保活机制)。 - 若心跳返回
1007,清空token并弹回登录窗口。
第五步:退出生效
程序退出时无需调用注销接口——服务端靠心跳判定在线,停止心跳超过宽限期即视为离线。详见 离线授权与宽限期。
完整流程一览
text
启动 → 初始化 + Init握手
→ 输入卡密 → SingleLogin → 拿到 token
→ 时钟(5min) → UserHeartbeat(Type=card)
→ 退出(停止心跳即可)常见问题
| 现象 | 原因 | 解决 |
|---|---|---|
一直 1014 | 本地时间不对 | 校准系统时间,检查时间戳实现 |
1010 签名错误 | RC4/MD5 拼接不对 | 对比 签名校验 的两条公式 |
1004 卡密无效 | 卡密输错或不属于该产品 | 核对卡密与 AppId |