Skip to content

AutoJs对接

本文档介绍如何在 Auto.js 环境中使用 VerifyHub SDK 实现网络验证功能。

1. 准备工作

1.1 下载 SDK

重要提示 下载示例工程、下载 SDK

百度网盘

官方网盘

Auto.js SDK 文件为 verifyhub.js,请将文件放置在你的项目目录中。

1.2 获取必要的参数

在使用 SDK 之前,你需要从 Kauth 管理后台获取以下信息:

  • API 域名paramApiDomain):验证服务器地址
  • 程序IDparamProgramId):登录后在"程序管理->程序列表"中查看
  • 程序密钥paramProgramSecret):登录后在"程序管理->程序列表"中查看
  • 商户公钥paramMerchantPublicKey):登录后在"系统配置"中查看,需要复制 RSA 密钥,注意使用 PKCS#8 格式

1.3 签名类型

Auto.js SDK 目前只支持 RSA 签名算法,如需其他签名算法可自行扩展。

2. 引入 SDK

在 Auto.js 脚本中引入 SDK:

javascript
var verifyhub = require("./verifyhub.js");

3. 初始化配置

在使用任何功能之前,必须先初始化 SDK 配置:

javascript
// 卡密服务器地址,如果是独立部署版本,请更换为你的服务器地址
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 卡密登录

使用卡密进行登录:

javascript
var loginResp = verifyhub.kaLogin("26d6968384714e2e8ed34ac7593bcb49", platformType, "", "");
console.log("卡密登录结果:", loginResp);

// 预期结果:
// {
//     success: true,
//     userId: "1980457194587283457",
//     nickName: "卡密用户",
//     msg: "操作成功",
//     code: 200
// }

4.2 账号密码登录

使用用户名和密码进行登录:

javascript
var loginResult = verifyhub.pwdLogin("test_user", "123456", "", "");
console.log("账号密码登录结果:", loginResult);

// 预期结果:
// {
//     userId: "1973207649463582721",
//     msg: "操作成功",
//     code: 200,
//     nickName: "test_user",
//     success: true
// }

4.3 试用登录

使用试用功能登录:

javascript
var trialLoginResult = verifyhub.trialLogin();
console.log("试用登录结果:", trialLoginResult);

// 预期结果:
// {
//     nickName: "卡密用户",
//     success: true,
//     msg: "操作成功",
//     code: 200,
//     userId: "1980457194587283457"
// }

4.4 退出登录

退出当前登录状态:

javascript
// 需要先登录
var loginoutResult = verifyhub.loginOut();
console.log("退出登录结果:", loginoutResult);

// 预期结果:
// {
//     code: 200,
//     msg: "操作成功",
//     success: true
// }

5. 用户管理

5.1 用户注册

注册新用户:

javascript
var registerResult = verifyhub.register(
    "autojs_user1",    // 用户名
    "123456",          // 密码
    "用户昵称",        // 昵称
    "注册卡密",        // 注册卡密(可选)
    "",                // 验证码ID
    ""                 // 验证码答案
);
console.log("用户注册结果:", registerResult);

// 预期结果:
// {
//     loginName: "autojs_user1",
//     userId: "1980574847339454466",
//     msg: "操作成功",
//     code: 200,
//     nickName: "用户昵称",
//     success: true
// }

5.2 修改密码

修改用户密码:

javascript
var changePasswordResult = verifyhub.changePassword(
    "test_user",       // 用户名
    "旧密码",          // 旧密码
    "新密码",          // 新密码
    "新密码",          // 确认新密码
    "",                // 验证码ID
    ""                 // 验证码答案
);
console.log("修改密码结果:", changePasswordResult);

// 预期结果:
// {
//     msg: "操作成功",
//     success: true,
//     code: 200
// }

5.3 获取用户信息(心跳)

重要提示: 登录有效期默认 10 分钟,建议写个定时任务定时获取用户信息。每次调用一次获取用户信息,登录有效期会延期 10 分钟。

获取当前登录用户的信息:

javascript
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 账号充值

使用卡密为账号充值:

javascript
var rechargeResult = verifyhub.recharge(
    "test_user",       // 用户名
    "充值卡密",       // 卡密
    "",                // 验证码ID
    ""                 // 验证码答案
);
console.log("账号充值结果:", rechargeResult);

// 预期结果:
// {
//     code: 200,
//     msg: "操作成功",
//     success: true
// }

6.2 以卡充卡

使用卡密A为卡密B充值:

javascript
var rechargeKaResult = verifyhub.rechargeKa(
    "卡密A",          // 源卡密
    "卡密B"           // 目标卡密
);
console.log("以卡充卡结果:", rechargeKaResult);

// 预期结果:
// {
//     success: true,
//     code: 200,
//     msg: "操作成功"
// }

7. 程序信息

7.1 获取程序详情

获取程序的详细信息(无需登录):

javascript
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 获取服务器时间

获取服务器当前时间(无需登录):

javascript
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 获取验证码

获取登录验证码(无需登录,登录、注册、充值等接口可选使用):

javascript
var captcheResult = verifyhub.getCaptcha(verifyhub.generateUUID());
console.log("获取验证码结果:", captcheResult);

// 预期结果:
// {
//     success: true,
//     uuid: "58ae597cf7634ee4b799924a7e6ecf70",  // 图形码的id
//     msg: "操作成功",
//     code: 200,
//     captchaBase64: "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAoCAIAAAC6iKlyAAAKU..." // base64格式的图片
// }

8. 设备管理

8.1 解绑登录中的设备

解除绑定当前登录的设备(需要先登录):

javascript
var unBindResult = verifyhub.unBindLoginDevice();
console.log("解绑设备结果:", unBindResult);

// 预期结果:
// {
//     success: true,
//     code: 200,
//     msg: "操作成功"
// }

8.2 解绑设备(非登录状态)

在未登录状态下解绑设备:

javascript
var unbindDeviceResult = verifyhub.unbindDevice(
    "test_user",       // 用户名
    "123456",          // 密码
    "",                // 验证码ID
    ""                 // 验证码答案
);
console.log("解绑设备结果:", unbindDeviceResult);

// 预期结果:
// {
//     success: true,
//     msg: "操作成功",
//     code: 200
// }

9. 配置管理

9.1 卡密配置

卡密用户可以保存自定义配置数据:

javascript
// 修改卡密配置
var updateResult = verifyhub.updateKaConfig("张三:18岁");
console.log("修改卡密配置结果:", updateResult);

// 查询卡密配置
var kaConfigResult = verifyhub.getKaConfig();
console.log("查询卡密配置结果:", kaConfigResult);

// 预期结果:
// {
//     msg: "操作成功",
//     code: 200,
//     config: "张三:18岁",  // 查询到的结果
//     success: true
// }

9.2 用户配置

注册用户可以保存自定义配置数据:

javascript
// 修改用户配置
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 添加远程数据

javascript
var addResult = verifyhub.addRemoteData("user_config_1", "张三");
console.log("添加远程数据结果:", addResult);

// 预期结果:
// {
//     msg: "操作成功",
//     success: true,
//     code: 200
// }

10.2 获取远程数据

javascript
var getResult = verifyhub.getRemoteData("user_config_1");
console.log("查询远程数据结果:", getResult);

// 预期结果:
// {
//     msg: "操作成功",
//     value: "张三",  // 查询到的value数据
//     success: true,
//     code: 200
// }

10.3 更新远程数据

javascript
var updateResult = verifyhub.updateRemoteData("user_config_1", "李四");
console.log("更新远程数据结果:", updateResult);

// 预期结果:
// {
//     msg: "操作成功",
//     success: true,
//     code: 200
// }

10.4 删除远程数据

javascript
var deleteResult = verifyhub.deleteRemoteData("user_config_1");
console.log("删除远程数据结果:", deleteResult);

// 预期结果:
// {
//     msg: "操作成功",
//     success: true,
//     code: 200
// }

11. 远程变量

获取远程变量(无需登录):

javascript
var remoteVarResult = verifyhub.getRemoteVar("test_var_to_get");
console.log("获取远程变量结果:", remoteVarResult);

// 预期结果:
// {
//     code: 200,
//     value: "123213123123",  // 远程变量里的数据
//     success: true,
//     msg: "操作成功"
// }

12. 远程函数

调用远程函数(需要登录):

javascript
// 定义函数参数
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. 脚本更新

获取并更新最新脚本:

javascript
// 查询最新的脚本
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. 完整示例

javascript
// 引入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. 注意事项

  1. 登录状态维持:登录有效期默认 10 分钟,建议写个定时任务定时调用 userInfo() 来保持登录状态。每次调用 userInfo() 登录有效期会延期 10 分钟。

  2. SDK 下载:SDK 下载请登录后台管理系统,在系统首页进行下载。

  3. 需要登录的功能:所有需要登录的功能,必须先调用登录接口。

  4. 配置存储:卡密配置和用户配置是分别独立的存储空间。

  5. 远程功能:远程函数和远程数据需要登录后才能使用。

  6. 脚本更新:脚本更新功能可以用于实现脚本在线更新。

  7. 验证码:验证码用于某些安全操作,如注册、修改密码等。

16. 错误处理

所有 API 调用都会返回统一格式的响应:

javascript
{
    code: 200,           // 状态码,200表示成功
    msg: "操作成功",     // 提示信息
    success: true,      // 是否成功
    // ... 其他数据字段
}

建议在实际使用时检查 success 字段:

javascript
var result = verifyhub.kaLogin("卡密", platformType, "", "");
if (result && result.success) {
    // 登录成功
    console.log("用户ID:", result.userId);
} else {
    // 登录失败
    console.error("登录失败:", result.msg);
}

17. 心跳机制示例

推荐使用心跳机制来保持登录状态:

javascript
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

沪ICP备2025152009号