必看说明
华网科技 ∙ 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=vn | 1.将全部请求参数格式化成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×tamp=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