admin管理员组文章数量:1640010
$appid = "appid "; //微信公众号(必须服务号)->基本配置 ->公众号开发信息 获取appid 和AppSecret
$secret = "secret ";
if(!cookie('code')||!cookie('mid')){
$redirect_uri = urlencode('http://'.$_SERVER['SERVER_NAME'].''); //微信公众号绑定域名 (公众号设置->功能设置->网页授权域名)
$url = "https://open.weixin.qq/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
header("Location:" . $url);
}
if(I('code') && !cookie('mid')){
$code = $_GET["code"];
cookie('code',$code);
$oauth2Url = "https://api.weixin.qq/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url);
//access_token和openid
$access_token = $oauth2["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url); //用户信息
$user = M('Member')->where(array('openid'=>$userinfo['openid']))->find();
if($user){
cookie('mid',$user['id']);
}else{
$add['openid'] = $userinfo['openid'];
$add['name'] = $userinfo['nickname'];
$add['thumb'] = $userinfo['headimgurl'];
$add['addtime'] = time();
$add['sex'] = $userinfo['sex']==1?'男':'女';
$add['city'] = $userinfo['province'].' '.$userinfo['city'];
$add_user = M('Member')->add($add);
if($add_user){
cookie('mid',$add_user);
}else{
echo '登录失败';exit;
}
}
public function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
版权声明:本文标题:PHP 网页授权获取微信用户基本信息(微信登录) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729307470a1195125.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论