请求签名方法


登录后台获取key,这里我们做以下假设:

  1. e1TZWs5SLtm8CFZ3n9Axd5BdMXkOsPgGnqt3M4S9iic=

需要以下信息

  1. 时间戳当前时间 timeStamp
  2. 随机字符串 randomStr
  3. key令牌 token

生成方法

  • 按参数首字母排序
  • 将字符串拼凑
  • 进行MD5加密
  • 再转为大写
  1. <?php
  2. /*
  3. * @param $timeStamp 时间戳
  4. * @param $randomStr 随机字符串
  5. * @return string 返回签名
  6. */
  7. function arithmetic($timeStamp,$randomStr,$token){
  8. $arr['timeStamp'] = $timeStamp;
  9. $arr['randomStr'] = $randomStr;
  10. $arr['token'] = $token;
  11. //按照首字母大小写顺序排序
  12. sort($arr,SORT_STRING);
  13. //拼接成字符串
  14. $str = implode($arr);
  15. //进行加密
  16. $signature = md5($str);
  17. //转换成大写
  18. $signature = strtoupper($signature);
  19. return $signature;
  20. }
  21. //随机生成字符串32位
  22. function createNonceStr($length = 32) {
  23. $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  24. $str = "";
  25. for ($i = 0; $i < $length; $i++) {
  26. $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  27. }
  28. return $str;
  29. }
  30. $timeStamp = time(); //时间戳
  31. $randomStr = createNonceStr(); //随机字符串
  32. $token = "e1TZWs5SLtm8CFZ3n9Axd5BdMXkOsPgGnqt3M4S9iic="; //令牌key
  33. $signature = arithmetic($timeStamp,$randomStr,$token);
  34. echo $signature;

最终生成的请求签名如下:

  1. 2DF9563499C4E9F8AB85A6FA2F963099
文档更新时间: 2018-08-13 15:34   作者:admin