Python 快速接入

华网科技 ∙ hwwlyz.com2024/01/17

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

接入须知

获取方式

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

使用方式

HWSDK文件夹解压放入你的项目中即可,然后在脚本中通过 from HWSDK import * 引入。
压缩包中的main.py是一个示例。

一个完整示例:

from HWSDK import *
import os
import time


# 初始化 app_key 和 app_secret 在开发者后台新建软件获取
hw = HWSDK(appKey='', appSecret='')
hw.debug = True


# 心跳失败回调
def onHeartbeatFailed(hret):
    print(hret.message)
    if hret.code == 10207:
        os._exit(1)  # 退出脚本
    print("心跳失败,尝试重登...")
    loginRet = hw.cardLogin()
    if loginRet.code == 0:
        print("重登成功")
    else:
        print(loginRet.message)
        os._exit(1)


if __name__ == '__main__':
    hw.on_heartbeat_failed = onHeartbeatFailed
    hw.setDeviceId('123')  # 设置设备唯一ID
    hw.setCard('')  # 设置卡密
    ret = hw.cardLogin()  # 卡密登录
    if ret.code != 0:
        print(ret.message)
        os._exit(1)
    print("卡密卡类:" + hw.loginRet.cardType)
    print("卡密到期时间:" + hw.loginRet.expires)
    time.sleep(1)
    # 登录成功,后面写你的业务代码
    while 1:
        print(hw.getHeartbeatResult())
        time.sleep(5)

可更改变量

变量类型默认值说明
hw.debugboolTrue开启后会在控制台输出每次请求的详细信息
hw._auto_heartbeatboolTrue是否自动开启心跳线程
hw._heartbeat_gapint120心跳间隔(秒),请勿低于60
hw.on_heartbeat_failedfunctionlambda ret: print(ret.message)心跳失败回调函数

可获取变量

TIP

注意:以下变量都为登录成功后才能取到值的。

变量类型说明
hw.loginRet.cardTypestring卡密类型,例如:月卡
hw.loginRet.expiresstring过期时间,例如:2024-02-14 19:44:20
hw.loginRet.expiresTsint过期时间戳,例如:1702780478
hw.loginRet.configstring卡密或用户自定义配置
hw.is_trialbool是否是试用登录

初始化

创建 SDK 实例

hw = HWSDK(appKey='', appSecret='')
参数名必传类型参数说明
appKeystring开发者后台新建软件获取
appSecretstring开发者后台新建软件获取

设置卡密

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

设置用户账号

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

设置设备号

hw.setDeviceId(deviceId)
参数名必传类型参数说明
deviceIdstring设备唯一标识

设置备用 Host

hw.setBackupHosts(host)
参数名必传类型参数说明
hoststring备用 API 域名

工具方法

获取网络时间戳

timestamp = HWSDK.timestamp()

注意:这是静态方法,可直接通过类名调用。

参数:无

返回值:int,例:1703870486

获取心跳结果

ret = hw.getHeartbeatResult()

参数:无

返回值:DotDict,例:{"code": 0, "message": "还未开始验证"}

获取剩余时长

remaining = hw.getTimeRemaining()

参数:无

返回值:int,剩余秒数,例:9000;已过期返回 0

更新 Host 列表

success = hw.updateHost()

从服务器拉取最新 Host 列表并更新。

参数:无

返回值:bool,成功返回 True

卡密相关

卡密登录

TIP

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

ret = hw.cardLogin()

参数:无

返回值:DotDict,参考 卡密登录接口返回

卡密退出登录

ret = hw.cardLogout()

参数:无

返回值:DotDict,例:{"code": 0, "message": "OK"}

卡密解绑设备

TIP

说明:需先在开发者后台配置软件开启设备绑定且可解除绑定。该接口只能在卡密登录后调用。

ret = hw.cardUnbindDevice()

参数:无

返回值:DotDict,例:{"code": 0, "message": "OK"}

卡密设置解绑密码

TIP

说明:需先在开发者后台配置软件开启设备绑定且可解除绑定。该密码用于绑定设备丢失时通过密码解绑。

ret = hw.setCardUnbindPassword(password)
参数名必传类型参数说明
passwordstring解绑密码(6-10位数字和字母组合)

返回值:DotDict,例:{"code": 0, "message": "OK"}

卡密通过密码解绑设备

ret = hw.cardUnbindDeviceByPassword(password)
参数名必传类型参数说明
passwordstring解绑密码(6-10位数字和字母组合)

返回值:DotDict,例:{"code": 0, "message": "OK"}

卡密充值(以卡充卡)

ret = hw.cardRecharge(card, use_card)
参数名必传类型参数说明
cardstring被充值的卡密(长度不超过45位)
use_cardstring充值使用的卡密(长度不超过45位)

返回值:DotDict,例:{"code": 0, "message": "OK"}

用户相关

用户注册(通过卡密)

ret = hw.userRegister(username, password, card)
参数名必传类型参数说明
usernamestring用户名(长度不超过20位)
passwordstring用户密码(长度6-30位)
cardstring注册使用的卡密(长度不超过45位)

返回值:DotDict,例:{"code": 0, "message": "ok"}

用户登录

TIP

注意:调用此接口前需先调用 hw.setUser(username, password)。 登录成功后将自动启动心跳线程。

ret = hw.userLogin()

参数:无

返回值:DotDict,参考 用户登录接口返回

用户退出登录

ret = hw.userLogout()

参数:无

返回值:DotDict,例:{"code": 0, "message": "OK"}

用户修改密码

ret = hw.userChangePassword(username, password, new_password)
参数名必传类型参数说明
usernamestring用户名(长度不超过20位)
passwordstring当前密码(长度6-30位)
new_passwordstring新密码(长度6-30位)

返回值:DotDict,例:{"code": 0, "message": "OK"}

用户充值(通过卡密)

ret = hw.userRecharge(username, card)
参数名必传类型参数说明
usernamestring用户名(长度不超过20位)
cardstring充值使用的卡密(长度不超过45位)

返回值:DotDict,例:{"code": 0, "message": "OK"}

试用相关

试用登录

TIP

注意:调用此接口前需先调用 hw.setDeviceId(deviceId)。 登录成功后将自动启动心跳线程。

ret = hw.trialLogin()

参数:无

返回值:DotDict,参考 试用登录接口返回

试用退出登录

ret = hw.trialLogout()

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

参数:无

返回值:DotDict,例:{"code": 0, "message": "OK"}

配置相关

获取卡密配置

TIP

注意:调用此接口前需先调用 hw.setCard(card)

ret = hw.getCardConfig()

参数:无

返回值:DotDict,参考 卡密配置接口返回

更新卡密配置

ret = hw.updateCardConfig(config)
参数名必传类型参数说明
configstring自定义配置(长度不超过512位)

返回值:DotDict,例:{"code": 0, "message": "OK"}

获取用户配置

TIP

注意:调用此接口前需先调用 hw.setUser(username, password)

ret = hw.getUserConfig()

参数:无

返回值:DotDict,参考 用户配置接口返回

更新用户配置

ret = hw.updateUserConfig(config)
参数名必传类型参数说明
configstring自定义配置(长度不超过512位)

返回值:DotDict,例:{"code": 0, "message": "OK"}

软件相关

获取软件配置

ret = hw.getSoftwareConfig()

参数:无

返回值:DotDict,参考 软件配置接口返回

获取软件公告

ret = hw.getSoftwareNotice()

参数:无

返回值:DotDict,参考 软件公告接口返回

获取软件最新版本

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

返回值:DotDict,参考 软件版本接口返回

远程变量

获取远程变量

ret = hw.getRemoteVar(key)
参数名必传类型参数说明
keystring远程变量名(长度不超过64位)

返回值:DotDict,参考 远程变量接口返回

创建远程变量

ret = hw.createRemoteVar(key, value)
参数名必传类型参数说明
keystring远程变量名(长度不超过64位)
valuestring远程变量值(长度不超过60000位)

返回值:DotDict,参考 创建远程变量接口返回

修改远程变量

ret = hw.updateRemoteVar(key, value)
参数名必传类型参数说明
keystring远程变量名(长度不超过64位)
valuestring远程变量值(长度不超过60000位)

返回值:DotDict,例:{"code": 0, "message": "OK"}

删除远程变量

ret = hw.deleteRemoteVar(key)
参数名必传类型参数说明
keystring远程变量名(长度不超过64位)

返回值:DotDict,例:{"code": 0, "message": "OK"}

调用远程函数

ret = hw.callRemoteFunc(funName, params)

远程函数示例(在开发者后台定义):

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

脚本中调用

ret = hw.callRemoteFunc("add", [1, 2])
if ret.code == 0:
    print(ret.data)  # 远程函数返回值在 data 中
else:
    print(ret.message)
参数名必传类型参数说明
funNamestring远程函数名(长度不超过64位)
paramslist参数列表,例:[1, 2]

返回值:DotDict,例:{"code": 0, "message": "OK", "data": {"result": 3}}

Last Updated 2024/11/7 16:39:34
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.7