AutoJs对接
AutoJs对接网络验证
本文档介绍如何在 Auto.js 环境中使用 VerifyHub SDK 实现网络验证功能。
1. 准备工作
1.1 下载 SDK
重要提示 首先下载SDK文件: 网盘下载
Auto.js SDK 文件为 verifyhub.js,请将文件放置在你的项目目录中。
1.2 获取必要的参数
在使用 SDK 之前,你需要从 Kauth 管理后台获取以下信息:
- API 域名(
paramApiDomain):验证服务器地址 - 程序ID(
paramProgramId):登录后在"程序管理->程序列表"中查看 - 程序密钥(
paramProgramSecret):登录后在"程序管理->程序列表"中查看 - 商户公钥(
paramMerchantPublicKey):登录后在"系统配置"中查看,需要复制 RSA 密钥,注意使用 PKCS#8 格式
1.3 签名类型
Auto.js SDK 目前只支持 RSA 签名算法,如需其他签名算法可自行扩展。
2. 引入 SDK
在 Auto.js 脚本中引入 SDK:
var verifyhub = require("./verifyhub.js");
3. 初始化配置
在使用任何功能之前,必须先初始化 SDK 配置:
// 卡密服务器地址,如果是独立部署版本,请更换为你的服务器地址
var paramApiDomain = "https://verifyhub.cn";
// 程序ID,登录系统后在程序管理->程序列表中查看
var paramProgramId = "1959821336266936321";
// 程序密钥,登录系统后在程序管理 -> 程序列表中查看
var paramProgramSecret = "F77VzI7UWAElpWrz";
// 商户密钥,登录系统后在系统配置中查看,请复制RSA密钥,注意复制PKCS#8格式的密钥
var paramMerchantPublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCDmTDsasTz60Fej0J+hUEOlQCvpQkYE/COoKQbtKXNlgHNosaL/6V7oVwrcIpeb4j0FrKy6/Zwr7X0q3yTIVH0Mz+aBPEwPmrBRQfIwo2F03Cj66CM5mdMtIAELMuQteuZX9xYi1bQCBQ6OTj/n720/qo5IgdKe8mLaxNvUvLN6wIDAQAB";
// Auto.js暂时只支持RSA签名算法
var paramKauthSignType = "RSA";
// 当前平台-适用于多平台的脚本开发者通过卡密控制支持多平台
var platformType = "autojs_mobile";
// 初始化配置
verifyhub.initConfig(
paramApiDomain, // API域名
paramProgramId, // 程序ID
paramMerchantPublicKey, // 商户公钥
paramProgramSecret, // 程序密钥
"RSA" // 签名类型
);
4. 登录功能
4.1 卡密登录
使用卡密进行登录:
var loginResp = verifyhub.kaLogin("26d6968384714e2e8ed34ac7593bcb49", platformType, "", "");
console.log("卡密登录结果:", loginResp);
// 预期结果:
// {
// success: true,
// userId: "1980457194587283457",
// nickName: "卡密用户",
// msg: "操作成功",
// code: 200
// }
4.2 账号密码登录
使用用户名和密码进行登录:
var loginResult = verifyhub.pwdLogin("test_user", "123456", "", "");
console.log("账号密码登录结果:", loginResult);
// 预期结果:
// {
// userId: "1973207649463582721",
// msg: "操作成功",
// code: 200,
// nickName: "test_user",
// success: true
// }
4.3 试用登录
使用试用功能登录:
var trialLoginResult = verifyhub.trialLogin();
console.log("试用登录结果:", trialLoginResult);
// 预期结果:
// {
// nickName: "卡密用户",
// success: true,
// msg: "操作成功",
// code: 200,
// userId: "1980457194587283457"
// }
4.4 退出登录
退出当前登录状态:
// 需要先登录
var loginoutResult = verifyhub.loginOut();
console.log("退出登录结果:", loginoutResult);
// 预期结果:
// {
// code: 200,
// msg: "操作成功",
// success: true
// }
5. 用户管理
5.1 用户注册
注册新用户:
var registerResult = verifyhub.register(
"autojs_user1", // 用户名
"123456", // 密码
"用户昵称", // 昵称
"注册卡密", // 注册卡密(可选)
"", // 验证码ID
"" // 验证码答案
);
console.log("用户注册结果:", registerResult);
// 预期结果:
// {
// loginName: "autojs_user1",
// userId: "1980574847339454466",
// msg: "操作成功",
// code: 200,
// nickName: "用户昵称",
// success: true
// }
5.2 修改密码
修改用户密码:
var changePasswordResult = verifyhub.changePassword(
"test_user", // 用户名
"旧密码", // 旧密码
"新密码", // 新密码
"新密码", // 确认新密码
"", // 验证码ID
"" // 验证码答案
);
console.log("修改密码结果:", changePasswordResult);
// 预期结果:
// {
// msg: "操作成功",
// success: true,
// code: 200
// }
5.3 获取用户信息(心跳)
重要提示: 登录有效期默认 10 分钟,建议写个定时任务定时获取用户信息。每次调用一次获取用户信息,登录有效期会延期 10 分钟。
获取当前登录用户的信息:
var userInfoResult = verifyhub.userInfo();
console.log("用户信息:", userInfoResult);
// 注册用户信息示例:
// {
// userId: "1973207649463582721",
// msg: "操作成功",
// serverExpireTime: "2025-10-23 16:50:47", // 服务到期时间
// serverType: "time", // 服务类型:time(时间)、ci(次卡)
// code: 200,
// trial: false, // 是否是试用用户
// success: true,
// serverRemainNum: null // 剩余次数,次卡登录专用
// }
// 卡密用户信息示例:
// {
// code: 200,
// trial: false, // 是否试用
// serverType: "ci", // 服务类型为次数
// serverRemainNum: "9", // 剩余登录次数
// msg: "操作成功",
// serverExpireTime: null,
// userId: "1980457194587283457",
// success: true
// }
6. 充值功能
6.1 账号充值
使用卡密为账号充值:
var rechargeResult = verifyhub.recharge(
"test_user", // 用户名
"充值卡密", // 卡密
"", // 验证码ID
"" // 验证码答案
);
console.log("账号充值结果:", rechargeResult);
// 预期结果:
// {
// code: 200,
// msg: "操作成功",
// success: true
// }
6.2 以卡充卡
使用卡密A为卡密B充值:
var rechargeKaResult = verifyhub.rechargeKa(
"卡密A", // 源卡密
"卡密B" // 目标卡密
);
console.log("以卡充卡结果:", rechargeKaResult);
// 预期结果:
// {
// success: true,
// code: 200,
// msg: "操作成功"
// }
7. 程序信息
7.1 获取程序详情
获取程序的详细信息(无需登录):
var detail = verifyhub.getProgramDetail();
console.log("程序详情:", detail);
// 预期结果:
// {
// currentVersion: { // 当前最新的版本
// versionDownUrl: "https://www.baidu.com", // 最新版本下载地址
// versionNo: 1, // 最新版本号
// versionDesc: "1.0.1", // 版本描述
// versionName: "1.0.1" // 版本名称
// },
// msg: "操作成功",
// name: "第一个程序", // 程序名称
// status: true, // 程序是否启用
// success: true,
// notice: "测试账号:test 密码:123456", // 程序公告
// enableRegisterDict: true, // 是否开启注册
// code: 200,
// programId: "1959821336266936321", // 程序ID
// forceUpdateDict: true // 是否强制更新
// }
7.2 获取服务器时间
获取服务器当前时间(无需登录):
var serverTime = verifyhub.getServerTime();
console.log("服务器时间:", serverTime);
// 预期结果:
// {
// serverTimeMill: "1761027691365", // 服务器时间-毫秒
// code: 200,
// success: true,
// msg: "操作成功",
// serverTimeSec: "1761027691", // 服务器时间-秒
// serverTimeStr: "2025-10-21 14:21:31" // 服务器时间-字符串
// }
7.3 获取验证码
获取登录验证码(无需登录,登录、注册、充值等接口可选使用):
var captcheResult = verifyhub.getCaptcha(verifyhub.generateUUID());
console.log("获取验证码结果:", captcheResult);
// 预期结果:
// {
// success: true,
// uuid: "58ae597cf7634ee4b799924a7e6ecf70", // 图形码的id
// msg: "操作成功",
// code: 200,
// captchaBase64: "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAoCAIAAAC6iKlyAAAKU..." // base64格式的图片
// }
8. 设备管理
8.1 解绑登录中的设备
解除绑定当前登录的设备(需要先登录):
var unBindResult = verifyhub.unBindLoginDevice();
console.log("解绑设备结果:", unBindResult);
// 预期结果:
// {
// success: true,
// code: 200,
// msg: "操作成功"
// }
8.2 解绑设备(非登录状态)
在未登录状态下解绑设备:
var unbindDeviceResult = verifyhub.unbindDevice(
"test_user", // 用户名
"123456", // 密码
"", // 验证码ID
"" // 验证码答案
);
console.log("解绑设备结果:", unbindDeviceResult);
// 预期结果:
// {
// success: true,
// msg: "操作成功",
// code: 200
// }
9. 配置管理
9.1 卡密配置
卡密用户可以保存自定义配置数据:
// 修改卡密配置
var updateResult = verifyhub.updateKaConfig("张三:18岁");
console.log("修改卡密配置结果:", updateResult);
// 查询卡密配置
var kaConfigResult = verifyhub.getKaConfig();
console.log("查询卡密配置结果:", kaConfigResult);
// 预期结果:
// {
// msg: "操作成功",
// code: 200,
// config: "张三:18岁", // 查询到的结果
// success: true
// }
9.2 用户配置
注册用户可以保存自定义配置数据:
// 修改用户配置
var updateResult = verifyhub.updateUserConfig("李四:21岁");
console.log("修改用户配置结果:", updateResult);
// 查询用户配置
var userConfigResult = verifyhub.getUserConfig();
console.log("查询用户配置结果:", userConfigResult);
// 预期结果:
// {
// config: "李四:21岁", // 查询到的结果
// code: 200,
// msg: "操作成功",
// success: true
// }
10. 远程数据管理
远程数据管理功能允许用户存储和管理自定义数据。
10.1 添加远程数据
var addResult = verifyhub.addRemoteData("user_config_1", "张三");
console.log("添加远程数据结果:", addResult);
// 预期结果:
// {
// msg: "操作成功",
// success: true,
// code: 200
// }
10.2 获取远程数据
var getResult = verifyhub.getRemoteData("user_config_1");
console.log("查询远程数据结果:", getResult);
// 预期结果:
// {
// msg: "操作成功",
// value: "张三", // 查询到的value数据
// success: true,
// code: 200
// }
10.3 更新远程数据
var updateResult = verifyhub.updateRemoteData("user_config_1", "李四");
console.log("更新远程数据结果:", updateResult);
// 预期结果:
// {
// msg: "操作成功",
// success: true,
// code: 200
// }
10.4 删除远程数据
var deleteResult = verifyhub.deleteRemoteData("user_config_1");
console.log("删除远程数据结果:", deleteResult);
// 预期结果:
// {
// msg: "操作成功",
// success: true,
// code: 200
// }
11. 远程变量
获取远程变量(无需登录):
var remoteVarResult = verifyhub.getRemoteVar("test_var_to_get");
console.log("获取远程变量结果:", remoteVarResult);
// 预期结果:
// {
// code: 200,
// value: "123213123123", // 远程变量里的数据
// success: true,
// msg: "操作成功"
// }
12. 远程函数
调用远程函数(需要登录):
// 定义函数参数
var functionParams = [
{
paramName: "param1", // 变量名
paramValue: "12" // 变量值
},
{
paramName: "param2",
paramValue: "24"
}
];
// 调用远程函数
var functionResult = verifyhub.callFunction("function_1", functionParams);
console.log("调用远程函数结果:", functionResult);
// 预期结果:
// {
// code: 200,
// msg: "操作成功",
// result: "36.0", // 远程函数返回的数据
// success: true
// }
13. 脚本更新
获取并更新最新脚本:
// 查询最新的脚本
var newestResult = verifyhub.getNewestScript("test_script");
console.log("查询最新脚本结果:", newestResult);
// 预期结果:
// {
// code: 200,
// scriptReleaseTime: "2025-10-01 18:43:21",
// scriptType: "TEXT", // 脚本类型: TEXT(文本) BINARY(二进制)
// scriptName: "test_script", // 脚本名称
// msg: "操作成功",
// success: true,
// versionNumber: "1.0.1", // 最新的版本
// versionDescription: "新版本1.0.1" // 版本描述
// }
// 查询脚本的临时下载地址
if (newestResult && newestResult.success && newestResult.versionNumber) {
var scriptDownloadResult = verifyhub.getScriptDownload(
"test_script",
newestResult.versionNumber
);
console.log("脚本下载地址:", scriptDownloadResult);
// 预期结果:
// {
// downloadUrl: "https://verifyhub.cn/api/consumer/remote/scriptDownload/68f8387ee4b0a960ff22da63",
// code: 200,
// success: true,
// msg: "操作成功"
// }
// 下载脚本内容,如果是文本文件可以直接输出
// 注意:在Auto.js中需要使用http模块来下载文件
if (scriptDownloadResult && scriptDownloadResult.success) {
var scriptResponse = http.get(scriptDownloadResult.downloadUrl);
console.log("响应码 = " + scriptResponse.statusCode);
console.log("脚本内容 = " + scriptResponse.body.string());
}
}
14. 完整示例
// 引入SDK
var verifyhub = require("./verifyhub.js");
// 1. 初始化配置
var paramApiDomain = "https://verifyhub.cn";
var paramProgramId = "你的程序ID";
var paramProgramSecret = "你的程序密钥";
var paramMerchantPublicKey = "你的商户公钥";
verifyhub.initConfig(
paramApiDomain,
paramProgramId,
paramMerchantPublicKey,
paramProgramSecret,
"RSA"
);
// 2. 卡密登录
var loginResp = verifyhub.kaLogin("你的卡密", "autojs_mobile", "", "");
if (loginResp && loginResp.success) {
console.log("登录成功,用户ID:", loginResp.userId);
// 3. 获取用户信息(心跳,保持登录状态)
var userInfo = verifyhub.userInfo();
console.log("用户类型:", userInfo.serverType);
console.log("剩余次数:", userInfo.serverRemainNum);
console.log("到期时间:", userInfo.serverExpireTime);
// 4. 使用远程数据
verifyhub.addRemoteData("my_data", "Hello World");
var data = verifyhub.getRemoteData("my_data");
console.log("远程数据:", data.value);
// 5. 退出登录
verifyhub.loginOut();
}
15. 注意事项
登录状态维持:登录有效期默认 10 分钟,建议写个定时任务定时调用
userInfo()来保持登录状态。每次调用userInfo()登录有效期会延期 10 分钟。SDK 下载:SDK 下载请登录后台管理系统,在系统首页进行下载。
需要登录的功能:所有需要登录的功能,必须先调用登录接口。
配置存储:卡密配置和用户配置是分别独立的存储空间。
远程功能:远程函数和远程数据需要登录后才能使用。
脚本更新:脚本更新功能可以用于实现脚本在线更新。
验证码:验证码用于某些安全操作,如注册、修改密码等。
16. 错误处理
所有 API 调用都会返回统一格式的响应:
{
code: 200, // 状态码,200表示成功
msg: "操作成功", // 提示信息
success: true, // 是否成功
// ... 其他数据字段
}
建议在实际使用时检查 success 字段:
var result = verifyhub.kaLogin("卡密", platformType, "", "");
if (result && result.success) {
// 登录成功
console.log("用户ID:", result.userId);
} else {
// 登录失败
console.error("登录失败:", result.msg);
}
17. 心跳机制示例
推荐使用心跳机制来保持登录状态:
function keepAlive() {
if (isLoggedIn) {
var userInfo = verifyhub.userInfo();
if (userInfo && userInfo.success) {
console.log("心跳成功,剩余次数:", userInfo.serverRemainNum);
} else {
console.error("心跳失败,需要重新登录");
isLoggedIn = false;
}
}
}
// 每 5 分钟执行一次心跳
setInterval(keepAlive, 5 * 60 * 1000);
18. 更多信息
- 更多 API 接口说明请参考 API 文档
- 如有问题,请联系技术支持:admin@verifyhub.cn 或 QQ: 5027954