AutoX.js 快速接入
华网网络验证提供了官方的 AutoXjs 封装库,方便 AutoXjs 开发者接入。
接入须知
获取方式
下载地址:https://wwds.lanzouq.com/b058ut5qj 密码:ez0s
或者加群839808671在群文件下载SDK,有问题也可在此群交流。
使用方式
先将下载到的HWSDK.js文件用编辑器打开,选中所有复制粘贴到你自己的main.js代码文件中。
一个示例:
/* 将HWSDK.js文件中的代码复制粘贴到上面 */
// AppKey 和 AppSecret 在华网开发者后台获取
let hw = new HWSDK("AppKey", "AppSecret");
hw.debug = true;
// 监听心跳失败事件
hw.event.on("heartbeatFail", 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(JSON.stringify(hw.loginRet, null, " "));//取消注解可看到完整返回参数
toastLog("卡密类型:", hw.loginRet.cardType)
toastLog("卡密到期时间:", hw.loginRet.expires)
//hold主线程不要退出,记得删除,后面是你的代码
while (true) {
let ret = hw.getHeartbeatResult();
toastLog("心跳结果: " + ret.code);
sleep(2000);
}
可更改变量
- hw.debug : bool型,默认为true,开启后会在控制台输出每次请求的详细信息,方便调试
- hw._device_id: string型,设备号默认会自动获取,不建议修改。如果你有更好的一机一码的生成方案,可在初始化后修改该值
可获取变量
TIP
注意
以下变量都为登录成功后才能取到值的。
- hw.loginRet.cardType : 卡密类型,例如:月卡
- hw.loginRet.expires : 过期时间,例如:2024-02-14 19:44:20
- hw.loginRet.expiresTs : 过期时间戳,例如:1702780478
- hw.loginRet.config : 卡密或用户配置,开发者可通过接口自定义的
- hw.is_trial : 是否是试用登录
TIP
注意
调用中文函数时返回false。
- hw._errRet: 可用此变量获取错误信息 ojb类型{ "code": 0, "message": "无报错信息" }
初始化
初始化卡密
语法
hw.setCard(card)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
card | 是 | string | 用户填写的卡密(长度不超过45位) |
初始化用户账号
语法
hw.setUser(username, password)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度1-20位) |
password | 是 | string | 用户密码(长度6-30位) |
获取时间戳(网络时间)
语法
let timestamp = hw.getTimestamp()
参数
无
返回值
数字类型,例:1703870486
获取心跳结果
语法
let ret = hw.getHeartbeatResult()
参数
无
返回值
Object类型,例:{"code": 0, "message": "","data":null}
获取剩余时长
语法
let ret = hw.getTimeRemaining()
//或者
let ret = hw.获取剩余时间()
参数
无
返回值
数字类型,剩余多少秒,例:9000
卡密登录
:::tip
注意
调用此接口前需调用 hw.setCard(card) 初始化卡密
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 hw.getHeartbeatResult() 获取当前心跳结果。
:::
语法
let ret = hw.CardLogin() //返回登录后详情数据
let ret = hw.卡密登录() //返回false或true
参数
无
返回值
Object类型,例:参考接口返回
卡密退出登录
语法
let ret = hw.cardLogout() //返回服务器数据
let ret = hw.卡密退出登录() //返回false或true
参数
无
返回值
英文:Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
卡密解绑设备
:::tip
注意
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口只能在卡密登录后调用。更多说明
:::
语法
let ret = hw.cardUnbindDevice()
let ret = hw.卡密解绑()
参数
无
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
卡密设置解绑密码
:::tip
说明
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该密码用于绑定设备丢失或者其它原因导致无法在老设备登录时解绑设备。
:::
语法
let ret = hw.setCardUnbindPassword(password)
let ret = hw.卡密设置解绑密码(需要设置的解绑密码)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
password | 是 | string | 解绑密码(6-10位数字和字母组合的字符串) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
卡密通过密码解绑设备
:::tip
说明
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口用于绑定设备丢失或者其它原因导致无法在老设备登录时,通过解绑密码解绑设备。
:::
语法
let ret = hw.cardUnbindDeviceByPassword(password)
let ret = hw.卡密解绑通过解绑密码(解绑密码)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
password | 是 | string | 解绑密码(6-10位数字和字母组合的字符串) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
卡密充值(以卡密充卡密)
语法
let ret = hw.cardRecharge(card, useCard)
let ret = hw.卡密充值(被充值的卡密, 充值的卡密)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
card | 是 | string | 被充值的卡密(长度不超过45位) |
useCard | 是 | string | 充值使用的卡密(长度不超过45位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
用户注册(通过卡密)
语法
let ret = hw.userRegister(username, password, card)
let ret = hw.用户注册(账号, 密码, 卡密)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
password | 是 | string | 用户密码(长度6-30位) |
card | 是 | string | 注册使用的卡密(长度不超过45位) |
返回值
Object类型,例:{"code": 0, "message": "ok"}
中文:bool类型 返回 treu 或 fasle
用户登录
:::tip
注意
调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 hw.getHeartbeatResult() 获取当前心跳结果。
:::
语法
let ret = hw.userLogin()
let ret = hw.用户登录()
参数
无
返回值
Object类型,例:参考接口返回
中文:bool类型 返回 treu 或 fasle
用户退出登录
语法
let ret = hw.userLogout()
let ret = hw.用户退出登录()
参数
无
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
用户修改密码
语法
let ret = hw.userChangePassword(username, password, newPassword)
let ret = hw.用户修改密码(账号, 密码, 新密码)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
password | 是 | string | 当前密码(长度6-30位) |
newPassword | 是 | string | 新密码(长度6-30位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
用户充值(通过卡密)
语法
let ret = hw.userRecharge(username, card)
let ret = hw.用户充值(账号, 卡密)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
card | 是 | string | 充值使用的卡密(长度不超过45位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
试用登录
:::tip
注意
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
只需在自己的脚本中通过调用 hw.getHeartbeatResult() 获取当前心跳结果。
:::
语法
let ret = hw.trialLogin()
let ret = hw.试用登录()
参数
无
返回值
Object类型,例:参考接口返回
中文:bool类型 返回 treu 或 fasle
试用退出登录
语法
let ret = hw.trialLogout()
let ret = hw.试用退出登录()
参数
无
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
获取卡密配置
:::tip
注意
调用此接口前需调用 hw.setCard(card) 初始化卡密
:::
语法
let ret = hw.getCardConfig()
let ret = hw.卡密获取配置()
参数
无
返回值
Object类型,例:参考接口返回
中文:返回字符串
更改卡密配置
:::tip
注意
调用此接口前需调用 hw.setCard(card) 初始化卡密
:::
语法
let ret = hw.updateCardConfig(config)
let ret = hw.卡密更新配置(配置信息)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
config | 是 | string | 自定义配置(长度不能超过512位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
获取用户配置
:::tip
注意
调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码
:::
语法
let ret = hw.getUserConfig()
let ret = hw.用户获取配置()
参数
无
返回值
Object类型,例:参考接口返回
中文:返回字符串
更改用户配置
注意
调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码
语法
let ret = hw.updateUserConfig(config)
let ret = hw.用户更新配置(配置信息)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
config | 是 | string | 自定义配置(长度不能超过512位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
获取软件配置
语法
let ret = hw.getSoftwareConfig()
let ret = hw.软件获取配置()
参数
无
返回值
Object类型,例:参考接口返回
中文:返回字符串
获取软件公告
语法
let ret = hw.getSoftwareNotice()
let ret = hw.软件获取公告()
参数
无
返回值
Object类型,例:参考接口返回
中文:返回字符串
获取软件最新版本
语法
let ret = hw.getSoftwareLatestVersion(current_ver)
let ret = hw.软件获取最新版本(当前版本号)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
current_ver | 否 | string | 当前本地的版本(长度不能超过30位)空默认返回 发布版本 |
返回值
Object类型,例:参考接口返回
中文:Object类型
远程变量
获取远程变量
语法
let ret = hw.getRemoteVar(key)
let ret = hw.远程变量获取(变量名)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名(长度不能超过64位) |
返回值
Object类型,例:参考接口返回
中文:返回字符串
设置远程变量
语法
let ret = hw.updateRemoteVar(key, value)
let ret = hw.远程变量更新(变量名, 变量值)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
value | 是 | string | 远程变量值value(长度不能超过60000位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
创建远程变量
语法
let ret = hw.createRemoteVar(key,value)
let ret = hw.远程变量创建(变量名,变量值)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
value | 是 | string | 远程变量值value(长度不能超过60000位) |
返回值
Object类型,例:参考接口返回
中文:bool类型 返回 treu 或 fasle
删除远程变量
语法
let ret = hw.deleteRemoteVar(key)
let ret = hw.远程变量删除(变量名)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
调用远程函数
语法
let ret = hw.callRemoteFunc(funName, params)
let ret = hw.执行远程函数(函数名, 参数)
示例
远程函数为:
function add(a, b) {
return a + b;
}
脚本中调用:
let ret = hw.callRemoteFunc("add", [1, 2])
if (ret.code == 0) {
log(ret.data.result);
} else {
log(ret.message);
}
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
funName | 是 | string | 远程函数名(长度不能超过64位) |
params | 是 | array | 参数列表,例:Array(1, 2) |
返回值
Object类型,例:{"code": 0, "message": "OK", "data": {"result": 3}}
其他功能
获取错误信息
语法
let ret = hw.getError()
let ret = hw.获取错误信息()
返回值
Object类型,例:{"code": 0, "message": "OK"}
获取模块版本
语法
let ret = hw.getSdkVersion()
let ret = hw.获取模块版本()
返回值
字符串 例:v1.0.0
关闭自动心跳
语法
hw._auto_heartbeat=false
设置心跳周期
语法
hw._heartbeat_gap=120*1000 //默认 120秒 请勿低于60s一次!