腾讯开放平台web第三方登录获取信息类(包含签名)

 不清楚具体参数的可以先看下第三方登录的文档

class QQ {
//$appid 你的appid
//$openid 获取到的唯一的用户openid
//$openkey 获取到的openkey
    public static function Sign($appid,$openid,$openkey){

        $arr=[
                "openid"=>$openid,
                "openkey"=>$openkey,
                "appid"=>$appid,
                "pf"=>"qzone",
                "format"=>"json",
        ];
        ksort($arr);
        //转义接口地址
        $encode_path=rawurlencode("/v3/user/get_info");
        //获取串行化的数组参数
        $data = $this->createLinkstring($arr);
        //拼接加密字符串
        $sig_str="GET&".$encode_path.'&'.rawurlencode($data);
        //拼接秘钥
        $key=$appid.'&';

        $sig=base64_encode(hash_hmac("sha1", $sig_str, $key, true));

        $url=$data.'&sig='.$sig;

        $url="http://119.147.19.43/v3/user/get_info?".urlencode($url);
        
        var_dump($url);die();
        //创建crul链接查询
        $ch = curl_init();
    
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $output = curl_exec($ch);
    
        //打印获得的数据
        var_dump($output);
    
    }


    public function createLinkstring($para) {
        $arg1=$arg2="";
        foreach ($para as $k=>$v){
            $arg1.= $k.'='.$v.'&';
            $arg2.= $k.'='.rawurlencode($v).'&';
        }

        $data['before_encode']=trim(stripslashes($arg1), "&");
        $data['after_encode']=trim(stripslashes($arg2), "&");
        return $data['before_encode'];
    }
    
    
    
}
原文地址:https://www.cnblogs.com/zjhblogs/p/6251352.html