Esempio n. 1
0
 /**
  * @description 签名方法实现,并构造一个参数串
  * 
  * @access private
  * @param mixed $params
  * @return void
  */
 public function signRequest($params)
 {
     if ($this->access_token) {
         $params['access_token'] = $this->access_token;
     }
     $keys = open56Client::urlencodeRfc3986(array_keys($params));
     $values = open56Client::urlencodeRfc3986(array_values($params));
     if ($keys and $values) {
         $params = array_combine($keys, $values);
     } else {
         try {
             throw new Exception("signRequest need params exits!");
         } catch (Exception $e) {
             echo $e->getMessage();
         }
     }
     /**
      * 先去除系统级参数
      */
     unset($params['appkey']);
     unset($params['ts']);
     ksort($params);
     /**
      * 第一轮md5字符串
      * */
     $req = md5(http_build_query($params));
     $ts = time();
     /**当次请求的时间戳**/
     /**第二轮md5字符串,得到最后的签名变量,注意里面的顺序不可以改变否则结果错误!**/
     $params['sign'] = md5($req . '#' . $this->appkey . '#' . $this->secret . '#' . $ts);
     $params['appkey'] = $this->appkey;
     $params['ts'] = $ts;
     return http_build_query($params);
 }