🔐 卡密通 · 开发者文档

支持 10+ 种编程语言 · 一套接口 · 全平台对接

📚 接口总览

所有接口统一入口(兼容 keyt.cn 风格):

GET https://你的域名/kami/{用户名}/check.php?act={动作}&app={应用名}&...

主要 act 动作:

act说明是否需要签名
get_time获取服务器时间(防本地时间作弊)否
get_info一次性获取公告/版本/自定义1/自定义2/服务器时间否
get_notice获取公告否
get_version获取最新版本号否
get_custom1获取自定义内容 1否
get_custom2获取自定义内容 2否
login登录/激活(绑定设备)是
heartbeat心跳保活(建议 50-59 秒一次)是
verify同 heartbeat(兼容旧版)是
self_unbind用户自助解绑(扣费时长)是

🔏 签名机制

对需要签名的接口,使用 MD5 进行签名:

sign = MD5( act + "|" + card + "|" + mac + "|" + app + "|" + ts + "|" + app_key )
⚠️ app_key 是核心机密,请勿外泄。客户端代码建议做简单字符串混淆。

📦 返回值格式

{ "code": 0, // 0 = 成功;非 0 见下表 "msg": "ok", "data": { ... } // 业务数据 }

常用错误码:

code含义
0成功
1参数错误
2签名错误 / ts 偏差过大
3应用不存在
10卡密不存在
11卡密已禁用
12卡密已过期
13卡密已绑定到其他设备
20验证已关闭(任意卡密可通过)
21服务器紧急维护中
30心跳过快(< 50s)
40该卡密未开启自助解绑
41自助解绑冷却中

🛠️ 各语言示例

🐍 Python 对接

requests + hashlib 实现完整验证流程。

查看文档 →

🔷 易语言对接

接口调用方式、参数说明、常见对接问题。

查看文档 →

💎 C# / .NET 对接

HttpClient + MD5 签名示例。

查看文档 →

☕ Java / Kotlin 对接

HttpURLConnection + MessageDigest 实现。

查看文档 →

⚡ C++ 对接

libcurl + OpenSSL MD5 示例。

查看文档 →

🎮 按键精灵对接

完整代码示例、签名校验、心跳处理、返回值说明。

查看文档 →

🛡️ 签名机制详解

防篡改、防重放原理,MD5 + 时间戳签名计算示例。

查看文档 →

📦 其他语言

Go、PHP、VB、JavaScript 等更多语言示例。

查看文档 →

🔁 完整流程(伪代码)

// 1. 启动时拉取公告/版本/自定义 info = http_get("/kami/{user}/check.php?act=get_info&app={app}") show_notice(info.notice) if local_version < info.version: prompt_update() // 2. 用户输入卡密后登录 ts = current_unix_timestamp() mac = get_device_mac() // 或机器码 sign = md5(act + "|" + card + "|" + mac + "|" + app + "|" + ts + "|" + app_key) url = "/kami/{user}/check.php?act=login&app=" + app + "&card=" + card + "&mac=" + mac + "&sign=" + sign + "&ts=" + ts resp = http_get(url) if resp.code == 0: save_card(card) start_heartbeat_loop() else: show_error(resp.msg) // 3. 启动心跳循环(每 50-59 秒一次) while running: sleep(55) ts = current_unix_timestamp() sign = md5(...) resp = http_get("...?act=heartbeat&...") if resp.code != 0: kill_app() // 验证失败立即退出