Skip to content

请以自建应用的AK和SK来调用接口,AK和SK请妥善保管。

API调用方式及签名算法

  • 用户可以在HTTP Header中包含签名 (Authorization)
  • 签名头 (Authorization)验证码计算方法如下: Authorization:"WPS-2:" + AK + ":" + sha1( SK + Content-Md5 + Content-Type + DATE) ◦ 其中WPS-2 为接口版本,WPS-1为版本1,WPS-2为版本2,类推, 此文档只支持WPS-2。 ◦ 标准sha1算法结果为一个40个字符的字符串,16进制小写表示的string. 注意: HTTP Header中必须包含以下字段
  • Content-Md5 HTTP Body中数据的md5值十六进制表达方式, 必需小写, 如果Body中没有内容一律使用URI计算Md5, 例如: uri=/api/files/123?filter=folder
  • Content-Type 目前固定为: application/json
  • DATE 取当前时间, 格式: Wed, 23 Jan 2013 06:43:08 GMT
  • Authorization 上面所说的签名头

签名示例

json
let ak = pm.variables.get("ak")
let sk = pm.variables.get("sk")
let content
if (pm.request.body.raw !== undefined && pm.request.body.raw.length > 0) {
    content = pm.request.body.raw
} else {
    let url = pm.request.url.getPathWithQuery()
    content = encodeURI(url)
}
let ct = "application/json"
let date = (new Date()).toUTCString()
let md5Str = CryptoJS.MD5(content).toString()
let authStr = sk + md5Str + ct + date
let sha1Str = CryptoJS.SHA1(authStr).toString()
let authorization = "WPS-2:" + ak + ":" + sha1Str

pm.request.headers.append({"key":"Content-Type","value":ct})
pm.request.headers.append({"key":"Content-MD5","value":md5Str})
pm.request.headers.append({"key":"Authorization","value":authorization})
pm.request.headers.append({"key":"Date","value":date})