AutoX.js 快速接入

揭阳市榕城区赛搏技术服务工作室 ∙ hwwlyz.com2024/01/14

华网网络验证提供了官方的 AutoXjs 封装库,方便 AutoXjs 开发者接入。

接入须知

获取方式

下载地址:https://wwds.lanzouq.com/b058ut5qj 密码:ez0sopen in new window 或者加群 839808671 在群文件下载 SDK,有问题也可在此群交流。

使用方式

先将下载到的 HWSDK.js 文件用编辑器打开,选中所有内容复制粘贴到你自己的 main.js 代码文件中。

一个完整的示例:

/* 将 HWSDK.js 文件中的代码复制粘贴到上面 */

// AppKey 和 AppSecret 在华网开发者后台获取
let hw = new HWSDK("AppKey", "AppSecret");
hw.debug = true;

// 监听心跳失败事件
hw.event.on("heartbeat_failed", function (ret) {
    toastLog("验证异常信息:" + ret.message);
    if (ret.code === 10207) {
        sleep(200);
        exit();  // 退出脚本
        return;
    }
    log("心跳失败,尝试重登...");
    sleep(2000);
    let loginRet = hw.cardLogin();
    if (loginRet.code === 0) {
        log("重登成功");
    } else {
        toastLog(loginRet.message);
        sleep(200);
        exit();
    }
});

// 当脚本正常或者异常退出时会触发 exit 事件
events.on("exit", function () {
    hw.cardLogout(); // 调用退出登录
    log("结束运行");
});

// 设置卡密
hw.设置卡密("卡密");
if (!hw.卡密登录()) {
    let err = hw.获取错误信息();
    toastLog(err.message);
    sleep(200);
    exit();
}

// 登录成功,后面写你的业务代码
toastLog("卡密类型:" + hw.loginRet.cardType);
toastLog("卡密到期时间:" + hw.loginRet.expires);

// hold 主线程不要退出,记得删除,后面是你的代码
while (true) {
    let ret = hw.getHeartbeatResult();
    toastLog("心跳结果:" + ret.code);
    sleep(2000);
}

可更改变量

变量类型默认值说明
hw.debugbooleantrue开启后会在控制台输出每次请求的详细信息,方便调试
hw._device_idstring自动获取设备号,默认自动获取。如有更好的一机一码方案可在初始化后修改
hw._auto_heartbeatbooleantrue是否在登录成功后自动启动心跳线程
hw._heartbeat_gapnumber120000(120秒)心跳周期(毫秒),请勿低于 60 秒
hw._protocolstring"http"请求协议,可改为 "https"

可获取变量

注意: 以下变量在登录成功后才有值。

变量类型说明
hw.loginRet.cardTypestring卡密类型,例如:"月卡"
hw.loginRet.expiresstring过期时间,例如:"2024-02-14 19:44:20"
hw.loginRet.expiresTsnumber过期时间戳,例如:1702780478
hw.loginRet.configstring卡密或用户配置,开发者可通过接口自定义
hw.is_trialboolean是否是试用登录
hw._errRetobject错误信息对象,如 {"code": 0, "message": "无报错信息"}

初始化

构造函数

let hw = new HWSDK(appKey, appSecret)
参数必传类型说明
appKeystring华网开发者后台获取的 AppKey
appSecretstring华网开发者后台获取的 AppSecret

初始化卡密

hw.setCard(card)
// 或
hw.设置卡密(card)
参数必传类型说明
cardstring用户填写的卡密(长度不超过 45 位)

初始化用户账号

hw.setUser(username, password)
// 或
hw.设置用户(username, password)
参数必传类型说明
usernamestring用户名(长度 1-20 位)
passwordstring用户密码(长度 6-30 位)

通用接口

获取时间戳(网络时间)

let timestamp = hw.getTimestamp()
  • 参数:
  • 返回值: number — Unix 时间戳(秒),例:1703870486

内部依次尝试小米、拼多多的时间接口,均失败则回退到本地时间。

获取心跳结果

let ret = hw.getHeartbeatResult()
  • 参数:
  • 返回值: object — 例:{"code": 0, "message": "", "data": null}

获取剩余时长

let ret = hw.getTimeRemaining()
// 或
let ret = hw.获取剩余时间()
  • 参数:
  • 返回值: number — 剩余秒数,例:9000(已过期返回 0

获取设备码

let id = hw.getDeviceID()
// 或
let id = hw.获取设备码()
  • 参数:
  • 返回值: string — 设备唯一标识(依次尝试 serial → AndroidId → IMEI)

获取错误信息

let ret = hw.getError()
// 或
let ret = hw.获取错误信息()
  • 参数:
  • 返回值: object — 例:{"code": 0, "message": "无报错信息"}

获取模块版本

let ret = hw.getSdkVersion()
// 或
let ret = hw.获取模块版本()
  • 参数:
  • 返回值: string — 例:"v1.0.1"

卡密登录

注意: 调用此接口前需调用 hw.setCard(card) 初始化卡密。 登录成功后 SDK 将自动启动心跳线程,开发者无需关注心跳细节,只需通过 hw.getHeartbeatResult() 获取当前心跳结果。

语法

let ret = hw.cardLogin()   // 英文版:返回完整的响应对象

let ret = hw.卡密登录()     // 中文版:返回 boolean(true/false)

参数

返回值

  • 英文版: object — 完整响应数据(含 tokencardTypeexpires 等字段)
  • 中文版: booleantrue 表示登录成功,false 表示失败

卡密退出登录

语法

let ret = hw.cardLogout()    // 英文版:返回完整响应对象

let ret = hw.卡密退出登录()   // 中文版:返回 boolean

参数

返回值

  • 英文版: object — 例:{"code": 0, "message": "OK"}
  • 中文版: booleantrue 表示成功

卡密解绑设备

注意: 需先在开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。此接口需在卡密登录后调用。

语法

let ret = hw.cardUnbindDevice()   // 英文版

let ret = hw.卡密解绑()            // 中文版:返回 boolean

参数

返回值

  • 英文版: object — 例:{"code": 0, "message": "OK"}
  • 中文版: boolean

卡密设置解绑密码

说明: 此接口需在卡密登录后调用。该密码用于设备丢失时在新设备上解绑。

语法

let ret = hw.setCardUnbindPassword(password)      // 英文版

let ret = hw.卡密设置解绑密码(password)             // 中文版:返回 boolean

参数

参数必传类型说明
passwordstring解绑密码(6-10 位数字和字母组合)

返回值

  • 英文版: object — 例:{"code": 0, "message": "OK"}
  • 中文版: boolean

卡密通过密码解绑设备

说明: 用于设备丢失无法在老设备登录时,通过解绑密码解绑设备。此接口无需登录即可调用(仅需提前 setCard 设置卡密)。

语法

let ret = hw.cardUnbindDeviceByPassword(password)     // 英文版

let ret = hw.卡密解绑通过解绑密码(password)             // 中文版:返回 boolean

参数

参数必传类型说明
passwordstring解绑密码(6-10 位数字和字母组合)

返回值

  • 英文版: object — 例:{"code": 0, "message": "OK"}
  • 中文版: boolean

卡密充值(以卡密充卡密)

语法

let ret = hw.cardRecharge(card, useCard)            // 英文版

let ret = hw.卡密充值(被充值的卡密, 充值的卡密)       // 中文版:返回 boolean

参数

参数必传类型说明
cardstring被充值的卡密(长度不超过 45 位)
useCardstring充值使用的卡密(长度不超过 45 位)

返回值

  • 英文版: object
  • 中文版: boolean

用户注册(通过卡密)

语法

let ret = hw.userRegister(username, password, card)   // 英文版

let ret = hw.用户注册(账号, 密码, 卡密)                 // 中文版:返回 boolean

参数

参数必传类型说明
usernamestring用户名(长度不超过 20 位)
passwordstring用户密码(长度 6-30 位)
cardstring注册使用的卡密(长度不超过 45 位)

返回值

  • 英文版: object — 例:{"code": 0, "message": "ok"}
  • 中文版: boolean

用户登录

注意: 调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码。 登录成功后 SDK 将自动启动心跳线程。

语法

let ret = hw.userLogin()    // 英文版:返回完整响应对象

let ret = hw.用户登录()      // 中文版:返回 boolean

参数

返回值

  • 英文版: object — 完整响应数据
  • 中文版: booleantrue 表示成功

用户退出登录

语法

let ret = hw.userLogout()      // 英文版

let ret = hw.用户退出登录()     // 中文版:返回 boolean

参数

返回值

  • 英文版: object — 例:{"code": 0, "message": "OK"}
  • 中文版: boolean

用户修改密码

语法

let ret = hw.userChangePassword(username, password, newPassword)   // 英文版

let ret = hw.用户修改密码(账号, 密码, 新密码)                        // 中文版:返回 boolean

参数

参数必传类型说明
usernamestring用户名(长度不超过 20 位)
passwordstring当前密码(长度 6-30 位)
newPasswordstring新密码(长度 6-30 位)

返回值

  • 英文版: object
  • 中文版: boolean

用户充值(通过卡密)

语法

let ret = hw.userRecharge(username, card)    // 英文版

let ret = hw.用户充值(账号, 卡密)              // 中文版:返回 boolean

参数

参数必传类型说明
usernamestring用户名(长度不超过 20 位)
cardstring充值使用的卡密(长度不超过 45 位)

返回值

  • 英文版: object
  • 中文版: boolean

试用登录

注意: 登录成功后将自动启动心跳线程。试用无需设置卡密或用户,直接调用即可。

语法

let ret = hw.trialLogin()    // 英文版:返回完整响应对象

let ret = hw.试用登录()       // 中文版:返回 boolean

参数

返回值

  • 英文版: object — 完整响应数据
  • 中文版: booleantrue 表示成功

试用退出登录

注意: 试用退出登录不会发送 HTTP 请求,仅清理本地心跳任务和登录状态。

语法

let ret = hw.trialLogout()      // 英文版

let ret = hw.试用退出登录()      // 中文版:返回 boolean

参数

返回值

  • 均返回 {"code": 0, "message": "OK"}

获取卡密配置

注意: 调用此接口前需调用 hw.setCard(card) 初始化卡密。

语法

let ret = hw.getCardConfig()      // 英文版:返回完整响应对象

let ret = hw.卡密获取配置()        // 中文版:返回配置字符串,失败返回 undefined

参数

返回值

  • 英文版: object
  • 中文版: string — 卡密配置内容

更改卡密配置

注意: 调用此接口前需调用 hw.setCard(card) 初始化卡密。

语法

let ret = hw.updateCardConfig(config)      // 英文版

let ret = hw.卡密更新配置(config)           // 中文版:返回 boolean

参数

参数必传类型说明
configstring自定义配置(长度不超过 512 位)

返回值

  • 英文版: object
  • 中文版: boolean

获取用户配置

注意: 调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码。

语法

let ret = hw.getUserConfig()      // 英文版:返回完整响应对象

let ret = hw.用户获取配置()        // 中文版:返回配置字符串,失败返回 undefined

参数

返回值

  • 英文版: object
  • 中文版: string — 用户配置内容

更改用户配置

注意: 调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码。

语法

let ret = hw.updateUserConfig(config)      // 英文版

let ret = hw.用户更新配置(config)           // 中文版:返回 boolean

参数

参数必传类型说明
configstring自定义配置(长度不超过 512 位)

返回值

  • 英文版: object
  • 中文版: boolean

获取软件配置

语法

let ret = hw.getSoftwareConfig()    // 英文版:返回完整响应对象

let ret = hw.软件获取配置()          // 中文版:返回配置字符串,失败返回 undefined

参数

返回值

  • 英文版: object
  • 中文版: string — 软件配置内容

获取软件公告

语法

let ret = hw.getSoftwareNotice()    // 英文版:返回完整响应对象

let ret = hw.软件获取公告()          // 中文版:返回公告字符串,失败返回 undefined

参数

返回值

  • 英文版: object
  • 中文版: string — 公告内容

获取软件最新版本

语法

let ret = hw.getSoftwareLatestVersion(current_ver)    // 英文版

let ret = hw.软件获取最新版本(当前版本号)               // 中文版:返回完整响应对象

参数

参数必传类型说明
current_verstring当前本地版本号(长度不超过 30 位),为空默认返回发布版本

返回值

  • 中英文版均返回 object — 完整响应数据

远程变量

获取远程变量

let ret = hw.getRemoteVar(key)       // 英文版:返回完整响应对象

let ret = hw.远程变量获取(变量名)      // 中文版:返回变量值字符串,失败返回 undefined
参数必传类型说明
keystring远程变量名(长度不超过 64 位)

创建远程变量

let ret = hw.createRemoteVar(key, value)       // 英文版

let ret = hw.远程变量创建(变量名, 变量值)        // 中文版:返回 boolean
参数必传类型说明
keystring远程变量名(长度不超过 64 位)
valuestring远程变量值(长度不超过 60000 位)

更新远程变量

let ret = hw.updateRemoteVar(key, value)       // 英文版

let ret = hw.远程变量更新(变量名, 变量值)        // 中文版:返回 boolean
参数必传类型说明
keystring远程变量名(长度不超过 64 位)
valuestring远程变量值(长度不超过 60000 位)

删除远程变量

let ret = hw.deleteRemoteVar(key)       // 英文版

let ret = hw.远程变量删除(变量名)         // 中文版:返回 boolean
参数必传类型说明
keystring远程变量名(长度不超过 64 位)

执行远程函数

语法

let ret = hw.callRemoteFunc(funName, params)       // 英文版:返回完整响应对象

let ret = hw.执行远程函数(函数名, 参数)              // 中文版:返回函数执行结果,失败返回 undefined

示例

远程函数为:

function add(a, b) {
  return a + b;
}

脚本中调用:

// 英文版
let ret = hw.callRemoteFunc("add", [1, 2]);
if (ret.code == 0) {
  log(ret.data.result);   // 输出: 3
} else {
  log(ret.message);
}

// 中文版简写
let result = hw.执行远程函数("add", [1, 2]);
log(result);  // 输出: 3

参数

参数必传类型说明
funNamestring远程函数名(长度不超过 64 位)
paramsarray参数列表,例:[1, 2]

返回值

  • 英文版: object — 例:{"code": 0, "message": "OK", "data": {"result": 3}}
  • 中文版: 成功返回 ret.data.result,失败返回 undefined

高级功能

手动心跳

一般情况下无需手动调用,SDK 在登录成功后会自动启动心跳线程。以下接口供特殊场景使用。

// 卡密手动心跳
let ret = hw.cardHeartbeat()    // 英文版:返回完整响应对象
let ret = hw.卡密心跳()          // 中文版:返回 boolean

// 用户手动心跳
let ret = hw.userHeartbeat()    // 英文版
let ret = hw.用户心跳()          // 中文版:返回 boolean

// 试用期手动心跳
let ret = hw.trialHeartbeat()   // 英文版
let ret = hw.试用心跳()          // 中文版:返回 boolean

心跳失败回调

hw.onHeartbeatFailed(function (ret) {
    log("心跳失败 -> code: " + ret.code + " message: " + ret.message);
});

修改心跳周期

hw._heartbeat_gap = 120 * 1000; // 默认 120 秒,请勿低于 60 秒

关闭自动心跳

hw._auto_heartbeat = false;

使用 HTTPS

hw._protocol = "https";

中英文 API 速查表

功能英文 API中文 API中文返回值
设置卡密hw.setCard(card)hw.设置卡密(card)
设置用户hw.setUser(u, p)hw.设置用户(u, p)
卡密登录hw.cardLogin()hw.卡密登录()boolean
卡密退出hw.cardLogout()hw.卡密退出登录()boolean
卡密解绑设备hw.cardUnbindDevice()hw.卡密解绑()boolean
设置解绑密码hw.setCardUnbindPassword(pwd)hw.卡密设置解绑密码(pwd)boolean
密码解绑设备hw.cardUnbindDeviceByPassword(pwd)hw.卡密解绑通过解绑密码(pwd)boolean
卡密充值hw.cardRecharge(card, useCard)hw.卡密充值(被充值的卡密, 充值的卡密)boolean
用户注册hw.userRegister(u, p, c)hw.用户注册(账号, 密码, 卡密)boolean
用户登录hw.userLogin()hw.用户登录()boolean
用户退出hw.userLogout()hw.用户退出登录()boolean
修改密码hw.userChangePassword(u, p, np)hw.用户修改密码(账号, 密码, 新密码)boolean
用户充值hw.userRecharge(u, card)hw.用户充值(账号, 卡密)boolean
试用登录hw.trialLogin()hw.试用登录()boolean
试用退出hw.trialLogout()hw.试用退出登录()boolean
获取卡密配置hw.getCardConfig()hw.卡密获取配置()string
更新卡密配置hw.updateCardConfig(c)hw.卡密更新配置(c)boolean
获取用户配置hw.getUserConfig()hw.用户获取配置()string
更新用户配置hw.updateUserConfig(c)hw.用户更新配置(c)boolean
获取软件配置hw.getSoftwareConfig()hw.软件获取配置()string
获取软件公告hw.getSoftwareNotice()hw.软件获取公告()string
获取最新版本hw.getSoftwareLatestVersion(v)hw.软件获取最新版本(v)object
获取远程变量hw.getRemoteVar(key)hw.远程变量获取(key)string
创建远程变量hw.createRemoteVar(k, v)hw.远程变量创建(k, v)boolean
更新远程变量hw.updateRemoteVar(k, v)hw.远程变量更新(k, v)boolean
删除远程变量hw.deleteRemoteVar(key)hw.远程变量删除(key)boolean
执行远程函数hw.callRemoteFunc(f, p)hw.执行远程函数(f, p)函数返回值
获取心跳结果hw.getHeartbeatResult()object
获取剩余时间hw.getTimeRemaining()hw.获取剩余时间()number
获取时间戳hw.getTimestamp()number
获取设备码hw.getDeviceID()hw.获取设备码()string
获取错误信息hw.getError()hw.获取错误信息()object
获取模块版本hw.getSdkVersion()hw.获取模块版本()string (v1.0.1)
卡密心跳hw.cardHeartbeat()hw.卡密心跳()boolean
用户心跳hw.userHeartbeat()hw.用户心跳()boolean
试用心跳hw.trialHeartbeat()hw.试用心跳()boolean
Last Updated 2026/6/3 23:22:35
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.7