PHP微信公众号登录获取openid信息

PHP微信公众号网页授权
首先域名需要备案并在公众号进行设置域名
1.转到微信用户同意授权返回CODE
2.通过code换取授权appid access_token
3.拉取用户信息

state参数可自定义返回信息
snsapi_base 不需要用户同意授权只获取openid
snsapi_userinfo 需要用户同意 获取openid 和 用户资料

$info="luyis";
$appid="*****";//公众号appid
$myurl="http://".$_SERVER['SERVER_NAME']."/index/weixin/open";//code返回地址
$wxurl='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$myurl.'&response_type=code&scope=snsapi_userinfo&state='.$info.'#wechat_redirect';//url 参数
header('Location:'.$wxurl);
$appid="*****";
$key="88888";
$code   = $_GET['code'];
if ($code) {
              //初始化
              $ch = curl_init();
              //设置选项,包括URL
              curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$key&code=$code&grant_type=authorization_code");
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
              curl_setopt($ch, CURLOPT_HEADER, 0);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
              curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
              //执行并获取HTML文档内容
              $output = curl_exec($ch);
              //释放curl句柄
              curl_close($ch);
}
		 $oauth2 = json_decode($output,true);
			//如果code失效重新获取
  		 if(empty($oauth2["access_token"])){
                      $urls ="http://".$_SERVER['SERVER_NAME']."/index/weixin/index?qrcode=".$_GET['state'];
                      echo "<script language='javascript' type='text/javascript'>"; 
                      echo "window.location.href='$urls'"; 
                      echo "</script>"; 
            }
     		$access_token = $oauth2["access_token"];
            //openid
            $openid = $oauth2['openid'];
                      //第二步:根据全局access_token和openid查询用户信息
            $get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
            $userinfo = $this->http_curl($get_user_info_url);

2019-09-04

发布了1 篇原创文章 · 获赞 1 · 访问量 36

猜你喜欢

转载自blog.csdn.net/qq_39825512/article/details/100532923