第六元素是一款专业的安全防护系统,提供多语言开发支持、可视化数据分析、多重加密保障、API接口开放等功能,为软件开发者提供全方位的安全解决方案。
通过本文档中的API接口,您可以轻松地将第六元素的各项功能集成到您的应用程序中,包括但不限于:
- 用户身份验证和授权
- 卡密管理和验证
- 安全算法和数据加密
- 实时数据统计和分析
本文档为开发者提供了详细的API接口说明和使用指南,帮助您快速集成和使用第六元素提供的各项服务。
第六元素是一款专业的安全防护系统,提供多语言开发支持、可视化数据分析、多重加密保障、API接口开放等功能,为软件开发者提供全方位的安全解决方案。
通过本文档中的API接口,您可以轻松地将第六元素的各项功能集成到您的应用程序中,包括但不限于:
本文档分为以下几个主要部分:
左侧导航栏提供了快速访问各个章节的链接,您可以点击相应的链接跳转到需要查看的内容。
如果您是首次使用第六元素API,建议按照顺序阅读文档,以便全面了解系统的功能和使用方法。
按照以下步骤,快速集成第六元素API并开始使用我们的服务。
在使用第六元素API之前,您需要先创建一个开发者账号:
请妥善保管您的 AppSecret,不要泄露给他人,这是您调用API的重要凭证。
我们提供了多种语言的SDK,您可以选择适合您项目的SDK进行安装:
composer require securityshield/php-sdk
pip install securityshield
npm install securityshield-sdk
您也可以直接调用API而不使用SDK,但使用SDK可以简化开发过程并减少错误。
下面是一个简单的示例,展示如何使用PHP SDK进行API调用:
<?php
require_once 'vendor/autoload.php';
use SecurityShield\Client;
// 初始化客户端
$client = new Client([
'app_id' => 'YOUR_APP_ID',
'app_secret' => 'YOUR_APP_SECRET'
]);
// 调用验证接口
try {
$result = $client->verify([
'card_code' => 'XXXX-XXXX-XXXX-XXXX',
'machine_code' => 'MACHINE_UNIQUE_ID'
]);
if ($result['code'] == 0) {
echo "验证成功!到期时间:" . $result['expire_time'];
} else {
echo "验证失败:" . $result['message'];
}
} catch (Exception $e) {
echo "发生错误:" . $e->getMessage();
}
调用成功后,您将收到类似以下的JSON响应:
{
"code": 0,
"message": "success",
"data": {
"card_id": "12345",
"status": 1,
"expire_time": "2023-12-31 23:59:59",
"create_time": "2023-01-01 00:00:00"
}
}
了解第六元素API的调用规则和协议约定,确保您的请求能够被正确处理。
第六元素API采用RESTful风格,支持HTTP/HTTPS请求。所有接口均使用POST方法提交数据,数据格式支持JSON和表单两种方式。
POST /api/v1/verify HTTP/1.1
Host: api.securityshield.com
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"card_code": "XXXX-XXXX-XXXX-XXXX",
"machine_code": "MACHINE_UNIQUE_ID",
"timestamp": 1609459200,
"sign": "a1b2c3d4e5f6g7h8i9j0"
}
为了确保API调用的安全性,所有请求都需要进行签名验证。签名的计算方法如下:
Sign = MD5("kami=" + 卡密值 + "&markcode=" + MD5(CPU型号 + CPU制造商 + CPU序列号) + "&t=" + 当前时间戳 + "&" + APPKEY)
其中:
Sign = 校验_取md5_文本("kami=" + 编辑框_kami.内容 + "&markcode=" + 校验_取md5_文本(系统_取CPU型号() + 系统_取CPU制造商() + 系统_取CPU序列号(), 真) + "&t=" + 到文本(时间_到时间戳(, 真, 真)) + "&" + APPKEY, 真)
function calculateSign($kamiCode, $appKey) {
// 获取CPU信息(服务端验证时可能需要客户端提供)
$cpuInfo = getCpuInfo(); // 这在实际PHP环境中需要替换为实际获取方式
// 计算markcode
$markcode = md5($cpuInfo['model'] . $cpuInfo['manufacturer'] . $cpuInfo['serial']);
// 获取当前时间戳
$timestamp = time();
// 构建签名字符串
$signString = "kami=" . $kamiCode . "&markcode=" . $markcode . "&t=" . $timestamp . "&" . $appKey;
// 计算MD5
return md5($signString);
}
// 使用示例
$sign = calculateSign('XXXX-XXXX-XXXX-XXXX', 'YOUR_APP_KEY');
注意:请务必确保APPKEY的安全性,不要在客户端代码中明文存储或暴露APPKEY。在实际应用中,建议通过其他安全机制保护APPKEY。
所有API响应均为JSON格式,包含以下字段:
code
: 响应代码,0表示成功,非0表示失败message
: 响应消息,描述请求处理的结果data
: 响应数据,包含请求的具体结果{
"code": 0,
"message": "success",
"data": {
// 具体的响应数据
}
}
{
"code": 1001,
"message": "Invalid parameters",
"data": null
}
用于验证用户身份并获取用户信息的接口。
该接口用于验证用户登录信息并返回用户详细信息。
接口地址: https://www.eoilmen.com/api.php?api=userlogon
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=userlogon&app=10000&user=123456&password=123456
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写userlogon |
应用 | app | 是 | GET | 填写后台应用APPID |
用户账号 | user | 是 | GET/POST | 填写用户账号 |
用户密码 | password | 是 | GET/POST | 填写用户密码 |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
user | String | 账号 |
String | ||
name | String | 昵称 |
vip | String | VIP时间戳 |
ban | String | 禁用到期时间戳 |
ban_notice | String | 到期通知 |
pic | String | 用户头像 |
fen | String | 积分 |
rmb | String | 金额 |
{
"code":200,
"msg":{
"user":"123456",
"qq":"123456",
"name":"这个人没有名字!",
"vip":"999999",
"ban":"888888",
"fen":"1420",
"rmb":"1680.00"
},
"time":1715618665,
"check":"639dcaf77e12ed4c21ba6066ff52ae61"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
用于创建新用户账号的接口。
该接口用于创建新用户账号并完成注册。
接口地址: https://www.eoilmen.com/api.php?api=userreg
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=userreg&app=10000&user=123456&password=123456&qq=123456
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写userreg |
应用 | app | 是 | GET | 填写后台应用APPID |
用户昵称 | name | 否 | GET/POST | 填写用户昵称 |
用户账号 | user | 是 | GET/POST | 填写用户账号 |
用户密码 | password | 是 | GET/POST | 填写用户密码 |
用户QQ | 否 | GET/POST | 填写用户QQ | |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
msg | String | 返回信息 |
{
"code":200,
"msg":"注册成功",
"time":1582107375
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
115 | String | 账号已存在 |
117 | String | 该IP已注册 |
174 | String | 该QQ已存在 |
116 | String | 账号长度5~11位,不支持中文和特殊字符 |
119 | String | 密码长度需要满足6-18位数,不支持中文以及.-*_以外特殊字符 |
用于验证和管理卡密的接口。
该接口用于验证卡密并完成卡密登录。
接口地址: https://www.eoilmen.com/api.php?api=kmlogon
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=kmlogon&app=10000&kami=卡密46&markcode=123
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写kmlogon |
应用 | app | 是 | GET | 填写后台应用APPID |
卡密 | kami | 是 | GET/POST | 填写提交的卡密 |
设备码 | markcode | 是 | GET/POST | 如果开启了[验证设备]需提交此项 |
用户 | user | 否 | GET/POST | VIP充值卡或积分充值卡密则需提交此项 |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
kami | String | 提交的卡密 |
vip | String | 卡密到期时长 |
{
"code": 200,
"msg": {
"kami": "2iPMrvyhqH",
"vip": "1614693232"
},
"time": 1614689800,
"check": "00e837c144a02a5ed3717647ee3f33da"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
104 | String | 签名为空 |
105 | String | 数据过期 |
106 | String | 签名有误 |
148 | String | 卡密为空 |
149 | String | 卡密不存在 |
151 | String | 卡密禁用 |
169 | String | IP不一致 |
获取应用配置信息的接口。
该接口用于获取应用的配置信息,包括版本、更新URL、应用名称等。
接口地址: https://www.eoilmen.com/api.php?api=ini
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=ini&app=10000
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写ini |
应用 | app | 是 | GET | 填写后台应用APPID |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
version | String | 应用版本 |
version_info | String | 版本信息 |
app_update_show | String | 更新内容 |
app_update_url | String | 更新地址 |
app_update_pwd | String | 文件提取码 |
app_name | String | 应用软件名称 |
app_qq | String | 应用客服QQ |
app_groupchat | String | 应用群聊信息 |
app_img | String | 应用软件LOGO |
app_background | String | 应用软件背景信息 |
app_update_must | String | 开启强制更新返回"y",关闭则返回"n" |
app_switch | String | 应用付费使用返回"y",免费则返回"n" |
{
"code": 200,
"msg": {
"version": "1.0",
"version_info": "1.0、欢迎使用极简云验证\n2.0、全新版本正式发布",
"app_update_show": "全新版本已发布,请及时更新",
"app_update_url": "http://baidu.com/更新地址",
"app_update_pwd":"文件提取码",
"app_name":"测试应用",
"app_qq":"客服QQ号",
"app_groupchat":"售后群号或链接",
"app_img":"https://uu.uuu8.vip/assets/img/Program/program_461ecbe9f4945f36220f7dba196d956f.png",
"app_background":"https://uu.uuu8.vip/assets/img/Program/program_461ecbe9f4945f36220f7dba196d956f.png",
"app_update_must": "y",
"app_switch":"y",
"api_total":"32004"
},
"time":1726932703,
"check":"093bad3c4ff19e54ab8d913ed98e9e31"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
与用户管理相关的接口。
该接口用于获取用户详细信息。
接口地址: https://www.eoilmen.com/api.php?api=userinfo
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=userinfo&app=10000&user=123456
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写userinfo |
应用 | app | 是 | GET | 填写后台应用APPID |
用户账号 | user | 是 | GET/POST | 填写用户账号 |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
user | String | 账号 |
String | ||
name | String | 昵称 |
vip | String | VIP时间戳 |
ban | String | 禁用到期时间戳 |
ban_notice | String | 到期通知 |
pic | String | 用户头像 |
fen | String | 积分 |
rmb | String | 金额 |
{
"code":200,
"msg":{
"user":"123456",
"qq":"123456",
"name":"这个人没有名字!",
"vip":"999999",
"ban":"888888",
"fen":"1420",
"rmb":"1680.00"
},
"time":1715618665,
"check":"639dcaf77e12ed4c21ba6066ff52ae61"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
提供各种编程语言的对接示例和实用工具,帮助您快速集成第六元素API。
下载各种编程语言的SDK,简化第六元素API的集成流程。
我们提供以下编程语言的SDK,点击对应的链接进行下载:
注意:所有SDK均包含详细的使用文档和示例代码,以帮助您快速上手。如果您在使用过程中遇到任何问题,请参考相应的文档或联系我们的技术支持。
关于第六元素API的常见问题和解答。
登录第六元素官网后台,进入"开发设置"页面,点击"创建应用"按钮,填写相关信息后系统会自动生成AppID和AppSecret。请妥善保管这些信息,不要泄露给他人。
是的,为了保证系统稳定性,我们对API调用频率有一定限制。普通开发者账号的限制为每分钟60次请求,企业账号为每分钟300次请求。如果您需要更高的调用频率,请联系我们的技术支持。
此错误表示签名验证失败,可能的原因包括:
建议使用我们提供的SDK来避免签名相关的问题。
机器唯一标识(machine_code)用于绑定卡密和设备,应尽量确保其唯一性。生成方法:
无论使用哪种方式,都应该对获取的信息进行哈希处理,以保证隐私安全。
是的,所有API请求都通过HTTPS协议进行加密传输,确保数据在传输过程中的安全。此外,每个请求都需要签名验证,防止请求被篡改或伪造。
为防止API被盗用,建议采取以下措施:
第六元素API使用以下加密算法:
这些算法是当前业界广泛认可的安全标准,能够有效保护您的数据安全。
如果您在使用过程中遇到了文档中未提及的问题,或需要个性化的技术支持,请通过以下方式联系我们:
我们承诺在1个工作日内回复您的技术支持请求。对于企业客户,我们提供优先响应服务。
获取应用公告和版本信息的接口。
该接口用于获取应用的公告内容和版本信息。
接口地址: https://www.eoilmen.com/api.php?api=notice
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=notice&app=10000
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写notice |
应用 | app | 是 | GET | 填写后台应用APPID |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
app_gg | String | 公告内容 |
version_info | String | 版本信息 |
{
"code": 200,
"msg": {
"app_gg": "欢迎使用极简云验证",
"version_info":"测试软件版本信息或购买卡密链接地址内容"
},
"time": 1614687132,
"check": "b331c50badb960d997e8f25a78ccb740"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
用于解除卡密与设备的绑定关系。
该接口用于解除卡密与设备的绑定关系,允许卡密在其他设备上使用。
接口地址: https://www.eoilmen.com/api.php?api=kmunmachine
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=kmunmachine&app=10000&kami=XXXX-XXXX-XXXX-XXXX&markcode=MACHINE_UNIQUE_ID
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写kmunmachine |
应用 | app | 是 | GET | 填写后台应用APPID |
卡密 | kami | 是 | GET/POST | 填写需要解绑的卡密 |
设备码 | markcode | 是 | GET/POST | 填写当前设备的唯一标识 |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
注意:卡密解绑可能会根据应用设置扣除一定的使用时长或次数。
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
msg | String | 返回信息 |
{
"code": 200,
"msg": "卡密解绑成功",
"time": 1614689800,
"check": "00e837c144a02a5ed3717647ee3f33da"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
148 | String | 卡密为空 |
149 | String | 卡密不存在 |
151 | String | 卡密禁用 |
201 | String | 卡密解绑失败 |
获取对应应用下的外链或变量参数。
该接口用于获取对应应用下的外链或变量参数。如云端选择类型为<蓝奏云>则返回蓝奏云直链链接,解析直链失败则返回原链接,创建变量后客户端可通过id获取指定参数变量。
接口地址: https://www.eoilmen.com/api.php?api=getfile
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=getfile&app=10000
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写getfile |
应用 | app | 是 | GET | 填写后台应用APPID |
文件ID | id | 否 | GET | 填写则返回指定外链,不填则输出该应用下全部外链 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
file_url | String | 外链地址(如云端选择类型为<蓝奏云>则返回蓝奏云直链链接,解析直链失败则返回原链接) |
file_pwd | String | 文件提取码 |
date | String | 添加时间 |
state | String | 外链开关 |
{
"code": 200,
"msg": [{
"file_url":
"https://uu.uuu8.vip/doc.php?act=getfile",
"date": "2021-03-02 21:40:50",
"state": "y"
}],
"time": 1614692463,
"check": "7f5396bd94ea73c952a20294f3bcdd79"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
获取应用的RC4秘钥,用于数据加密。
该接口用于获取应用的RC4秘钥,用于客户端与服务端之间的数据加密通信。
接口地址: https://www.eoilmen.com/api.php?api=getrc4
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=getrc4&app=10000&appid=10000
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写getrc4 |
应用 | app | 是 | GET | 填写后台应用APPID |
应用 | appid | 是 | GET | 填写后台应用APPID |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
rc4key | String | rc4key秘钥 |
{
"code":200,
"msg":{"rc4key":"ukwFTT2Z9f510000"},
"time":1715448842,
"check":"274c1a60768f1cd3979d253e6c3674a9"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
一键开启应用的rc4-2加密功能并返回RC4加密密钥。
该接口用于快速开启应用的rc4-2加密功能并返回RC4Key,方便开发者实现安全通信。
接口地址: https://www.eoilmen.com/api.php?api=openrc42
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=openrc42&app=10000
注意:该接口将自动开启应用的rc4-2加密功能,并返回对应的RC4Key。请确保在调用前已了解rc4-2加密的使用方法。
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写openrc42 |
应用 | app | 是 | GET | 填写后台应用APPID |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
msg | String | 返回信息 |
rc4key | String | RC4加密密钥 |
{
"code": 200,
"msg": "rc4-2加密已开启",
"rc4key": "Zx7y9LpK3mN8qR5t",
"time": 1715476932,
"check": "b8d4c6e2a0f9d7c5b3a1e8f6d4c2b0a9"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
增加减少软件用户余额及积分,修改会员时间戳或到期时间戳。
该接口用于修改用户的各项数据,包括积分、余额、会员时间、昵称等信息。
接口地址: https://www.eoilmen.com/api.php?api=userlogonrf
返回格式: JSON
请求方式: GET/POST
请求示例:
https://www.eoilmen.com/api.php?api=userlogonrf&app=10000&user=123456&name=昵称&actdo=0&fen=10&rmb=20&vip=999999&ban=888888
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写userlogonrf |
应用 | app | 是 | GET | 填写后台应用APPID |
用户账号 | user | 是 | GET/POST | 填写用户账号 |
用户昵称 | name | 否 | GET/POST | 用户昵称(不填写则不修改) |
积分余额增减 | actdo | 否 | GET/POST | 填写0增加,填写1减少(不填写则默认增加) |
积分 | fen | 否 | GET/POST | 增减账户积分(不填写则不修改,填写需大于0) |
余额 | rmb | 否 | GET/POST | 增减账户余额(不填写则不修改,填写需大于0) |
会员 | vip | 否 | GET/POST | VIP时间戳(不填写则不修改,填写需大于0) |
到期时间 | ban | 否 | GET/POST | 禁用到期时间戳(不填写则不修改,填写需大于0) |
用户头像 | pic | 否 | GET/POST | 用户头像(不填写则不修改) |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
user | String | 账号 |
String | ||
name | String | 昵称 |
vip | String | VIP时间戳 |
ban | String | 禁用到期时间戳 |
ban_notice | String | 到期通知 |
fen | String | 积分 |
rmb | String | 金额 |
pic | String | 头像 |
{
"code":200,
"msg":{
"user":"123456",
"qq":"123456",
"name":"这个人没有名字!",
"vip":"99999",
"ban":"88888",
"fen":"1275",
"rmb":"1400.00"
},
"time":1715617022,
"check":"0adc4cb131625602a9e216d448779103"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
自动配置生成对接示例并提供下载。
该接口用于自动生成应用的对接示例代码,支持多种编程语言,方便开发者快速集成。
接口地址: https://www.eoilmen.com/api.php?api=automaticsample
返回格式: JSON
请求方式: GET
请求示例:
https://www.eoilmen.com/api.php?api=automaticsample&app=10000&lang=php
该接口会根据您的应用配置自动生成适合的对接代码,包括所有必要的API调用、加密处理和签名验证。
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写automaticsample |
应用 | app | 是 | GET | 填写后台应用APPID |
编程语言 | lang | 否 | GET | 可选值:php、java、csharp、python、js、flutter,默认为php |
时间戳 | t | 否 | GET | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
msg | String | 返回信息 |
sample_code | String | 生成的示例代码 |
download_url | String | 示例代码下载地址 |
language | String | 生成的代码语言 |
{
"code": 200,
"msg": "生成成功",
"data": {
"sample_code": "<?php\n// 自动生成的PHP对接示例代码\n// 应用ID: 10000\n// 生成时间: 2023-08-15 14:30:25\n\n// 请求参数\n$app = '10000';\n$user = 'test_user';\n$pass = 'test_password';\n\n// API地址\n$api_url = 'https://www.eoilmen.com/api.php';\n\n// 登录请求\n$login_url = $api_url . '?api=login&app=' . $app . '&user=' . $user . '&pass=' . $pass;\n\n// 发送请求\n$response = file_get_contents($login_url);\n$result = json_decode($response, true);\n\n// 处理结果\nif ($result['code'] == 200) {\n echo '登录成功,用户信息:';\n print_r($result['msg']);\n} else {\n echo '登录失败,错误信息:';\n print_r($result);\n}\n?>",
"download_url": "https://www.eoilmen.com/download.php?id=10000&type=sample&lang=php",
"language": "php"
},
"time": 1715631452,
"check": "85d6a3c2e9f178b4d0a1c2e9f3b7d5a8"
}
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
301 | String | 不支持的编程语言 |
持续验证卡密有效性的心跳机制。
该接口用于定期验证卡密的有效性,需要客户端定时请求,保持卡密活跃状态。建议每隔5-10分钟请求一次。
接口地址: https://www.eoilmen.com/api.php?api=heartbeat
返回格式: JSON
请求方式: GET/POST
请求示例:
https://www.eoilmen.com/api.php?api=heartbeat&app=10000&kami=卡密46&markcode=123
注意:心跳机制需要在用户登录后开始,定期发送请求以验证卡密有效性。如果长时间未发送心跳请求,可能需要重新登录重置心跳状态。
请求参数说明:
名称 | 变量 | 必填 | 类型 | 说明 |
---|---|---|---|---|
接口 | api | 是 | GET | 填写heartbeat |
应用 | app | 是 | GET | 填写后台应用APPID |
卡密 | kami | 是 | GET/POST | 填写提交的卡密 |
设备码 | markcode | 是 | GET/POST | 如果开启了[验证设备]需提交此项 |
退出心跳 | quit | 否 | GET/POST | 如果提交参数quit则是退出卡密心跳 |
时间戳 | t | 否 | GET/POST | 如果开启了[时间差效验]需提交此项 |
数据签名 | sign | 否 | GET/POST | 如果开启了[数据签名]需提交此项 |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
code | String | 返回状态 |
message | String | 请求成功信息 |
expires | String | 过期日期 |
expires_ts | String | 过期时间戳 |
返回示例:
{
"code":200,
"msg":{"message":"心跳请求成功",
"expires":"2099-12-30 00:00:00",
"expires_ts":"4102243200"},
"time":1732956359,
"check":"e39989088b888e54c8c5923258e4a66c"
}
{
"code": 107,
"msg": "心跳失败,请重新登录,重置心跳",
"time": 1704028850,
"check": "a83e3b51d1b1c1633fcca53a9b220b03"
}
{
"code": 201,
"msg": "心跳请求失败,卡密已到期",
"time": 1704023240,
"check": "a58c19f1d60ab53a6e51dd41efff58b1"
}
{
"code": 112,
"msg": "心跳失败,请先登录卡密注册心跳",
"time": 1705140355,
"check": "00ec3bfa0b472ea190384891f5a0b6c0"
}
{
"code": 200,
"msg": "已退出卡密心跳",
"time": 1705140373,
"check": "9811b0b3d01c9708b8f7943ebdd2559c"
}
心跳特殊错误代码:
名称 | 类型 | 说明 |
---|---|---|
107 | String | 心跳失败,请重新登录,重置心跳 |
112 | String | 心跳失败,请先登录卡密注册心跳 |
149 | String | 心跳请求失败,卡密不存在 |
150 | String | 心跳请求失败,卡密已登录其它设备 |
151 | String | 心跳请求失败,卡密已被禁用 |
169 | String | 心跳请求失败,ip验证失败 |
201 | String | 心跳请求失败,卡密已到期 |
错误码格式说明:
名称 | 类型 | 说明 |
---|---|---|
101 | String | 应用不存在 |
102 | String | 应用已关闭 |
171 | String | 接口维护中 |
172 | String | 接口未添加或不存在 |
了解API的数据签名计算方式。
使用sign签名可以保证API调用的安全性,防止请求参数被篡改。sign签名的计算规则如下:
算法提示 - 不管是什么接口,只需要将所有post的数据进行拼接,然后加上:&APPKEY
取MD5值即是Sign签名参数
Sign = 校验_取md5_文本("kami=" + 编辑框_kami.内容 + "&markcode=" + 校验_取md5_文本(系统_取CPU型号() + 系统_取CPU制造商() + 系统_取CPU序列号(), 真) + "&t=" + 到文本(时间_到时间戳(, 真, 真)) + "&" + APPKEY, 真))
Sign = 取MD5值("user=" + 编辑框_user.内容 + "&password=" + 编辑框_mima.内容 + "&inv=" + 编辑框_inv.内容 + "&markcode=" + 机器码 + "&t=" + 取现行时间戳(2) + "&" + APPKEY)
参数名=参数值
的格式拼接,参数之间用 &
连接&t=当前时间戳
防止重放攻击&APPKEY
<?php
function calculateSign($params, $appKey) {
// 参数排序
ksort($params);
// 拼接参数
$string = '';
foreach ($params as $key => $value) {
$string .= $key . '=' . $value . '&';
}
// 添加APPKEY
$string .= $appKey;
// 计算MD5
return md5($string);
}
// 请求参数
$params = array(
'api' => 'login',
'app' => '10000',
'user' => 'testuser',
'pass' => 'password123',
'markcode' => md5('CPU信息'),
't' => time()
);
$appKey = 'your_app_key_here';
$sign = calculateSign($params, $appKey);
echo "计算得到的sign: " . $sign;
?>
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
import java.util.TreeMap;
public class SignCalculator {
public static String calculateSign(Map params, String appKey) throws NoSuchAlgorithmException {
// 参数排序
Map sortedParams = new TreeMap<>(params);
// 拼接参数
StringBuilder sb = new StringBuilder();
for (Map.Entry entry : sortedParams.entrySet()) {
sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
}
// 添加APPKEY
sb.append(appKey);
// 计算MD5
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digest = md.digest(sb.toString().getBytes());
// 转换为十六进制字符串
BigInteger bigInt = new BigInteger(1, digest);
return String.format("%032x", bigInt);
}
public static void main(String[] args) {
try {
// 请求参数
Map params = new TreeMap<>();
params.put("api", "login");
params.put("app", "10000");
params.put("user", "testuser");
params.put("pass", "password123");
params.put("markcode", "CPU信息的MD5值");
params.put("t", String.valueOf(System.currentTimeMillis() / 1000));
String appKey = "your_app_key_here";
String sign = calculateSign(params, appKey);
System.out.println("计算得到的sign: " + sign);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
import hashlib
import time
import collections
def calculate_sign(params, app_key):
# 参数排序
sorted_params = collections.OrderedDict(sorted(params.items()))
# 拼接参数
string = ""
for key, value in sorted_params.items():
string += f"{key}={value}&"
# 添加APPKEY
string += app_key
# 计算MD5
return hashlib.md5(string.encode('utf-8')).hexdigest()
# 请求参数
params = {
'api': 'login',
'app': '10000',
'user': 'testuser',
'pass': 'password123',
'markcode': hashlib.md5('CPU信息'.encode('utf-8')).hexdigest(),
't': str(int(time.time()))
}
app_key = 'your_app_key_here'
sign = calculate_sign(params, app_key)
print(f"计算得到的sign: {sign}")
温馨提示:您在对接API时,一定要确保APPKEY的安全性,不要将其暴露在客户端代码中,建议在服务器端计算sign,并通过安全的渠道传递给客户端。如果必须在客户端计算sign,请做好代码加密和混淆工作。