接口签名

42 阅读1分钟

实现

请求接口:api.test.com/test?name=h…

AccessKey 可以是 appId

SecretKey 可以是 appSecret

客户端

    1. 生成当前时间戳timestamp=now和唯一随机字符串nonce=random
    2. 按照请求参数名的字母升序排列非空请求参数(包含AccessKey)
      stringA="AccessKey=access&home=world&name=hello&work=java&timestamp=now&nonce=random";
    3. 拼接密钥SecretKey
      stringSignTemp="AccessKey=access&home=world&name=hello&work=java&timestamp=now&nonce=random&SecretKey=secret";
    4. MD5并转换为大写
      sign=MD5(stringSignTemp).toUpperCase();
    5. 最终请求
      api.test.com/test?name=h…;

服务端

timestamp 3分钟有效

nonce 15分钟有效期,已经存在nonce,返回错误码