易语言 快速接入
华网网络验证提供了官方的 易语言 封装库,方便 易语言 开发者接入。
接入须知
获取方式
下载地址:https://wwds.lanzouq.com/b058vat3c 密码:gtp6
或者加群839808671在群文件下载SDK,有问题也可在此群交流。
使用方式
将下载到的HWSDK.ec放在你的模块引用表内.HWSDK.E为模块源码
该压缩包里的DEMO.e是一个简单的示例文件,供参考。
一个示例:
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 hw, HWSDK
.程序集变量 _heartbeat_ret, jsonObj
.程序集变量 _HeartbeatTaskId, 整数型
.子程序 __启动窗口_创建完毕
' 初始化模块
hw.init (“APPKEY”, “AppSecret”)
hw.debugLog (真)
_HeartbeatTaskId = 1
.子程序 _按钮_登录卡密_被单击
.局部变量 ret, jsonObj
hw.setCard (“kami”) ' 设置卡密
ret = hw.cardLogin () ' 登录
.如果真 (ret.取通用属性 (“code”, ) ≠ “0”)
调试输出 (“错误信息”, ret.取通用属性 (“message”, ))
返回 ()
.如果真结束
' 调试输出 (ret.取数据文本 ()) ' 输出所有返回信息
调试输出 (“卡密类型:”, ret.取通用属性 (“data.cardType”, ))
调试输出 (“卡密到期时间:”, ret.取通用属性 (“data.expires”, ))
_heartbeat_ret = hw.cardHeartbeat ()
SetTimer (取窗口句柄 (), _HeartbeatTaskId, 10 × 1000, 到整数 (&_startCardHeartbeat))
.子程序 _startCardHeartbeat, , , 心跳线程
_heartbeat_ret = hw.cardHeartbeat ()
.如果真 (_heartbeat_ret.取通用属性 (“code”, ) ≠ “0”)
_onHeartbeatFailed (_heartbeat_ret.取通用属性 (“code”, ), _heartbeat_ret.取通用属性 (“message”, ))
返回 ()
.如果真结束
.如果真 (hw.getTimeRemaining () = 0)
_onHeartbeatFailed (“10204”, “卡密已过期!”)
.如果真结束
.子程序 _onHeartbeatFailed, , , 心跳回调函数
.参数 code, 文本型
.参数 message, 文本型
.局部变量 login_ret, jsonObj
调试输出 (“验证异常信息:”, message)
.如果真 (code = “10207”)
信息框 (“心跳失效”, 0, , )
结束 ()
.如果真结束
调试输出 (“心跳失败,2s后尝试重登...”)
延时 (1000)
login_ret = hw.cardLogin ()
.如果真 (login_ret.取通用属性 (“code”, ) ≠ “0”)
调试输出 (“错误信息”, login_ret.取通用属性 (“message”, ))
结束 ()
.如果真结束
调试输出 (“重登成功”)
.子程序 __启动窗口_将被销毁
KillTimer (取窗口句柄 (), _HeartbeatTaskId)
hw.cardLogout ()
.子程序 _按钮_查询卡密剩余时间_被单击
信息框 (“剩余:” + 到文本 (hw.getTimeRemaining ()) + “秒”, 0, , )
.子程序 _按钮_查询心跳_被单击
调试输出 (_heartbeat_ret.取通用属性 (“code”, ))
调试输出 (_heartbeat_ret.取数据文本 ())
初始化
init
hw = HWSDK('appKey', 'appSecret')
初始化卡密
语法
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()
参数
无
返回值
Json对象,例:{"code": 0, "message": "","data":null}
获取剩余时长
语法
ret = hw.getTimeRemaining()
参数
无
返回值
数字类型,剩余多少秒,例:9000
卡密登录
:::tip
注意
调用此接口前需调用 hw.setCard(card) 初始化卡密
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 hw.getHeartbeatResult() 获取当前心跳结果。
:::
语法
ret = hw.CardLogin() //返回登录后详情数据
参数
无
返回值
Json对象,例:参考接口返回
卡密退出登录
语法
ret = hw.cardLogout() //返回服务器数据
参数
无
返回值
Json对象,例:{"code": 0, "message": "OK"}
卡密解绑设备
:::tip
注意
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口只能在卡密登录后调用。更多说明
:::
语法
ret = hw.cardUnbindDevice()
参数
无
返回值
Json对象,例:{"code": 0, "message": "OK"}
卡密设置解绑密码
:::tip
说明
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该密码用于绑定设备丢失或者其它原因导致无法在老设备登录时解绑设备。
:::
语法
ret = hw.setCardUnbindPassword(password)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
password | 是 | string | 解绑密码(6-10位数字和字母组合的字符串) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
卡密通过密码解绑设备
:::tip
说明
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口用于绑定设备丢失或者其它原因导致无法在老设备登录时,通过解绑密码解绑设备。
:::
语法
ret = hw.cardUnbindDeviceByPassword(password)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
password | 是 | string | 解绑密码(6-10位数字和字母组合的字符串) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
卡密充值(以卡密充卡密)
语法
ret = hw.cardRecharge(card, useCard)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
card | 是 | string | 被充值的卡密(长度不超过45位) |
useCard | 是 | string | 充值使用的卡密(长度不超过45位) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
用户注册(通过卡密)
语法
ret = hw.userRegister(username, password, card)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
password | 是 | string | 用户密码(长度6-30位) |
card | 是 | string | 注册使用的卡密(长度不超过45位) |
返回值
Json对象,例:{"code": 0, "message": "ok"}
用户登录
:::tip
注意
调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 hw.getHeartbeatResult() 获取当前心跳结果。
:::
语法
ret = hw.userLogin()
参数
无
返回值
Json对象,例:参考接口返回
用户退出登录
语法
ret = hw.userLogout()
参数
无
返回值
Json对象,例:{"code": 0, "message": "OK"}
用户修改密码
语法
ret = hw.userChangePassword(username, password, newPassword)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
password | 是 | string | 当前密码(长度6-30位) |
newPassword | 是 | string | 新密码(长度6-30位) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
用户充值(通过卡密)
语法
ret = hw.userRecharge(username, card)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
card | 是 | string | 充值使用的卡密(长度不超过45位) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
试用登录
:::tip
注意
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
只需在自己的脚本中通过调用 hw.getHeartbeatResult() 获取当前心跳结果。
:::
语法
ret = hw.trialLogin()
参数
无
返回值
Json对象,例:参考接口返回
试用退出登录
语法
ret = hw.trialLogout()
参数
无
返回值
Json对象,例:{"code": 0, "message": "OK"}
获取卡密配置
:::tip
注意
调用此接口前需调用 hw.setCard(card) 初始化卡密
:::
语法
ret = hw.getCardConfig()
参数
无
返回值
Json对象,例:参考接口返回
更改卡密配置
:::tip
注意
调用此接口前需调用 hw.setCard(card) 初始化卡密
:::
语法
ret = hw.updateCardConfig(config)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
config | 是 | string | 自定义配置(长度不能超过512位) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
获取用户配置
:::tip
注意
调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码
:::
语法
ret = hw.getUserConfig()
参数
无
返回值
Json对象,例:参考接口返回
更改用户配置
注意
调用此接口前需调用 hw.setUser(username, password) 初始化用户账号密码
语法
ret = hw.updateUserConfig(config)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
config | 是 | string | 自定义配置(长度不能超过512位) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
获取软件配置
语法
ret = hw.getSoftwareConfig()
参数
无
返回值
Json对象,例:参考接口返回
获取软件公告
语法
ret = hw.getSoftwareNotice()
参数
无
返回值
Json对象,例:参考接口返回
获取软件最新版本
语法
ret = hw.getSoftwareLatestVersion(current_ver)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
current_ver | 否 | string | 当前本地的版本(长度不能超过30位)空默认返回 发布版本 |
返回值
Json对象,例:参考接口返回
远程变量
获取远程变量
语法
ret = hw.getRemoteVar(key)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名(长度不能超过64位) |
返回值
Json对象,例:参考接口返回
设置远程变量
语法
ret = hw.updateRemoteVar(key, value)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
value | 是 | string | 远程变量值value(长度不能超过60000位) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
创建远程变量
语法
ret = hw.createRemoteVar(key,value)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
value | 是 | string | 远程变量值value(长度不能超过60000位) |
返回值
Json对象,例:参考接口返回
删除远程变量
语法
ret = hw.deleteRemoteVar(key)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
返回值
Json对象,例:{"code": 0, "message": "OK"}
调用远程函数
语法
ret = hw.callRemoteFunc(funName, params)
示例
远程函数为:
function add(a, b) {
return a + b;
}
脚本中调用:
.版本 2
.支持库 spec
ret = hw.callRemoteFunc("add", "[1, 2]")
.如果真 (ret.取属性数值 (“code”, ) ≠ “0”)
调试输出 (“错误信息”, ret.取通用属性 (“message”, ))
返回 ()
调试输出 (“错误信息”, ret.取通用属性 (“data.result”, ))
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
funName | 是 | string | 远程函数名(长度不能超过64位) |
params | 是 | array | 参数列表,例:Array(1, 2) |
返回值
Json对象,例:{"code": 0, "message": "OK", "data": {"result": 3}}
其他功能
获取模块版本
语法
ret = hw.getSdkVersion()
ret = hw.获取模块版本()
返回值
字符串 例:v1.0.0
输出调试信息
语法
HWSDK.debugLog(true)//bool型,默认为true,开启后会在控制台输出每次请求的详细信息,方便调试
获取机器码
语法
Dim deviceId=HWSDK.getDeviceId() // string型,设备号默认会自动获取,不建议修改。如果你有更好的一机一码的生成方案,可在初始化后修改该值
设置机器码
语法
Dim deviceId="asdc123456"//设置的机器码
HWSDK.setDeviceId(deviceId)