必看说明

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

签名算法(sign)

计算公式

sign = md5(http_method + host + path + k1=v1&k2=v2&kn=vn + appSecret)

JavaScript升序参考代码

function joinParams (params) {
        let ps = [];
        for (let k in params) {
            ps.push(k + "=" + params[k])
        }
        ps.sort();
        return ps.join("&")
    }

注意 参数必须按照顺序放置

参数名参数说明
http_method请求方法,GET或POST
host域名,例如:api.hwwlyz.com
path地址,例如:/api/v1/card/login
k1=v1...kn=vn1.将全部请求参数格式化成k=v2.将格式化后的参数按升序排列,然后用&符号相隔拼接在一起,不想写排序代码也可严格按照接口文档中的请求参数表写死顺序(注意:1.不包括sign参数, 2.V不应进行url encode)
appSecret软件秘钥,在开发端后台软件列表获取

以调用卡密登录接口举例

POST 请求 http://api.hwwlyz.com/api/v1/card/login 伪代码如下:

//参数区分大小写
appSecret = "1ox7b7nyr5d9i0cu205pffmx88400j0q"  // 软件秘钥
httpMethod = "POST"
host = "api.hwwlyz.com"
path = "/api/v1/card/login"

# 参数列表:
#  appKey=fa29cd0ad8ff07687758
#  card=sucSACHrgr0JAOXQLhwc
#  deviceId=test
#  timestamp=1704191774
# 将以上格式化的参数排序后,用 & 符号相隔拼接起来
params = "appKey=fa29cd0ad8ff07687758&card=sucSACHrgr0JAOXQLhwc&deviceId=test&timestamp=1704191774"

# 带入计算公式
sign = md5(httpMethod + host + path + params + appSecret)

console.log(sign)  # 输出 6bbea21c463728a19fdb5f8934459087

公共参数详细释义

  • timestamp:当前时间戳,保证签名只在1分钟内有效,请求到达服务器后会将时间戳参数与当前服务器时间相比较,是否超过了60s。防止别有用心的人抓包并重放请求。
  • sign,如果在60s内出现第二次,则会拒绝该请求。用于配合时间戳避免重放攻击。

接口返回码对照表

返回码说明
0调用成功
51参数错误,请检查请求参数,详细字段错误会通过messages返回
10101签名已过期,签名只在1分钟内有效且是一次性的
10102时间戳大于当前服务器时间,请检查timestamp参数
10103发送密钥不匹配,请检测appKey与appSecret是否匹配
10104无效的签名,请检查签名算法
10201软件不存在,请检查appKey
10202卡密不可用(卡密不存在)
10203卡密已被冻结
10204卡密已过期
10205卡密已被使用
10206卡密超过多开上限
10207心跳状态已失效,可能原因:超时未发心跳包、被挤下线、后台冻结、卡用户修改密码。
10208超出可绑定设备上限,请在已绑定设备上使用
10209解绑密码不正确
10210只能在首次登录绑定的设备上使用
10211软件未开启解绑设备功能
10212卡密未开启解绑设备功能
10213充值卡密不存在
10214不能对未使用的卡密进行充值
10215充值卡已使用
10216请在已使用过的设备上解绑
10217不能对未使用的卡密或未绑定设备进行解绑
10218卡密时间不足以扣除解绑所需时间
10219解绑卡密冻结中
10301该账号已存在,请重新更换账号名
10302用户登录密码错误
10303用户已到期
10306用户超过多开上限
10307用户超过多开上限
10401远程变量不存在
10402远程变量不支持API修改,请在后台设置允许远程修改
10403远程变量名(参数:key)已存在
10501远程函数不存在
10601已经是最新版本,获取软件最新版本接口返回
10701软件未开启试用,开发者需在开发者后台管理配置
10702本次试用已到期
10703试用已到期,软件配置为一次性试用
10704本周期试用已到期,软件配置为间隔试用
10705请先登录,原因:未登录就调用心跳接口或者登录后超过60秒再调用心跳接口
10706设备正在试用,请勿重复登录试用
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.7