微信清关签名生成方法

public function createSign($parameters,$key) {
        //签名步骤一:按字典序排序参数
        ksort($parameters);
        //签名步骤二:拼接参数
        $buff = "";
        foreach ($parameters as $k => $v){
            $buff .= $k . "=" . $v . "&";
        }
        //签名步骤三:在string后加入KEY
        $str = $buff.'key='.$key;
        // echo htmlspecialchars($str).'<br>';
        $mysign = "";
        if($this->sign_type == 'MD5') {
            $mysign = md5($str);
            $mysign = strtoupper($mysign);//转成大写
        }else {
            die("暂不支持".$this->sign_type."类型的签名方式");
        }
        return $mysign;
    }

public function para_filter($parameter) { //除去数组中的空值和签名模式
        $para = array();
        while (list ($key, $val) = each ($parameter)) {
            $filter_arr = array('sign');
            if( in_array($key,$filter_arr) || $val=="" ){
                continue;
            }else{
                $para[$key] = $parameter[$key];
            }
        }
        return $para;
    }

调用

$this->parameters["mchid"]=“xxxxxxxxxxxx”;

......

$this->createSign( $this->para_filter($this->parameters),$this->key);//签名

猜你喜欢

转载自blog.csdn.net/ajaxoo/article/details/81113287