稳定、快速、高效的数据接口服务
请求参数说明
| 名称 | 变量 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
| 接口 | api | 是 | GET | 固定填写 kmlogon |
| 应用 | app | 是 | GET | 填写后台应用的 APPID |
| 卡密 | kami | 是 | GET/POST | 用户提交的卡号卡密 |
| 机器码 | markcode | 是 | GET/POST | 客户端设备唯一标识,用于绑定卡密 |
| 时间戳 | t | 否 | GET/POST | 开启[时间差校验]时必须提交,服务端会校验与本地时间差 |
| 数据签名 | sign | 否 | GET/POST | 开启[数据签名]时必须提交,计算方式见开发文档 |
返回参数说明
| 名称 | 类型 | 说明 |
|---|---|---|
| code | Int | 200 登录成功,201 登录失败 |
| msg | Object | 成功时返回卡密信息 |
| msg.kami | String | 使用的卡密 |
| msg.vip | String | 到期时间戳,4102243200 表示永久有效 |
| time | Int | 服务器时间戳 |
| check | String | 二次校验值 |
返回示例
{
"code": 200,
"msg": {
"kami": "ABCD-EFGH-IJKL-MNOP",
"vip": "1800000000"
},
"time": 1770000000,
"check": "e10adc3949ba59abbe56e057f20f883e"
}
错误码格式说明
| 名称 | 类型 | 说明 |
|---|---|---|
| 101 | String | 应用不存在 |
| 102 | String | 应用已关闭 |
| 171 | String | 接口维护中 |
| 172 | String | 接口未添加或不存在 |
| 100 | String | 请绑定应用ID(未传 app 参数) |
| 101 | String | 应用不存在 |
| 102 | String | 应用已关闭 |
| 104 | String | 签名为空 |
| 105 | String | 数据过期(客户端时间与服务器时间差超出限制) |
| 106 | String | 签名有误 |
| 107 | String | 数据为空(加密模式下未提交 data) |
| 108 | String | 未发现时间变量(开启时间差校验但未提交 t) |
| 171 | String | 接口维护中 |
| 172 | String | 接口未添加或不存在 |
| 112 | String | 请填写机器码 |
| 148 | String | 卡密为空 |
| 149 | String | 卡密不存在 |
| 150 | String | 卡密已使用(已绑定其他机器码) |
| 151 | String | 卡密已被禁用 |
| 169 | String | 当前 IP 不一致 |
| 201 | String | 卡密已到期 / 登录失败,请重试 |
代码示例
// PHP 调用示例:卡密登录
$appid = "你的APPID";
$appkey = "你的APPKEY";
$params = [
"api" => "kmlogon",
"app" => $appid,
"kami" => "ABCD-EFGH-IJKL-MNOP",
"markcode" => "设备唯一标识",
"t" => time(),
];
ksort($params);
$str = "";
foreach ($params as $k => $v) { $str .= $k . "=" . $v . "&"; }
$params["sign"] = md5($str . $appkey);
$url = "https://你的域名/api.php?" . http_build_query($params);
$res = json_decode(file_get_contents($url), true);
if ($res["code"] == 200) {
echo "卡密有效,到期时间戳:" . $res["msg"]["vip"];
} else {
echo "验证失败:" . $res["msg"];
}