《「WeChat微信授权登录」PHP微信授权登录小白贴》要点:
本文介绍了「WeChat微信授权登录」PHP微信授权登录小白贴,希望对您有用。如果有疑问,可以联系我们。
我们用php做微信授权最主要使用的便是php的curl,下面我会为大家贴上一段.
首先,我们先去微信公众平台 - 接口权限 - 网页授权(网页授权获取用户基本信息中) 修改网页授权域名,我们只需要将网站拜访目录配置好,并且把需要下载的txt上传当前目录就行了,如下图.
下面我们开始第一步,获取code,我把获取code办法都写在下图的注释中,供客官们阅读.
配置好之后,我们拜访上面的链接看到的就是下面的页面,当点击确认的时候,我们就会转跳到授权配置的回调页面,如下图,下面小编为大家写一下授权回调页面,做一些有意思的事.
第二步获取的json数据未json_decode之前如下图.
第三步获取的json数据未json_decode之前如下图.
具体的参数阐明我们都可以在微信公众平台技术文档的微信网页授权中查看.
之后我们就可以拿到微信用户的各种信息了,可以做一些操作,好比存入数据库和其他一些判断,这里小编就不一一写出来了.
重要提示:我们还有一步,就是有很多客官别的数据都拿到了,就是没有unionid,这里我们还必要将公众号绑定到微信开放平台,我们只必要登录微信开放平台,选择下面的选项,由管理员将公众号添加进去即可.
绑定胜利之后我们在微信公众平台中基本配置下就能看到我们刚才绑定的开放平台账号了.
然后我们再次重复上面的过程,就可以发现用户的所有信息包含unionid都获取到了.
下面为了大家便利,我将我编写的php文件贴在下面,供大家复制查看.
//https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
//这里携带的几个参数
//appid 公众号唯一标识 在公众平台 - 基本配置中查看
//redirect_uri 回调地址 成功授权之后重定向回调地址 必要进行urlencode
//response_type 直接填写code即可
//scope 官网解释叫应用授权作用域 其实相当于两个参数中选择一个填写
//第一种参数选择填写 snsapi_base 不会弹出授权页面 静默授权
//第二种参数选择填写 snsapi_userinfo 弹出授权确认页面 我们下面为了获取更多信息 使用第二种参数选择
//state 和 wechat_redirect 我们使用链接中的即可 不必要修改
//下面我们进入回调页环节
//首选我们准备一个curl 为下面几次哀求用
function do_curl($url,$data='',$agent=''){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0); //是否返回header头
curl_setopt($ch, CURLOPT_TIMEOUT,6); //超时时间
if($data){
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
if($agent){
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
}
$content = curl_exec($ch);
return $content;
}
//第一步 截取code 这一步 我们从回调的url中截取到code的参数 而且声明一个变量作为code
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
$arr = parse_url($url);
$arr_query = convertUrlQuery($arr['query']);
$code = $arr_query['code'];
//第二步 使用curl根据code来获取access_token和openid
//必要的参数appid和secret都在公众平台 - 基本配置中查看 code则是我们上面获取的code $code
$access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ';
//之后我们使用curl发送哀求 将成功哀求的数据json_decode之后 我们再定义变量$access_token和$openid 供后面使用
$result = json_decode(do_curl($access_token_url));
$access_token = $result->access_token;
$openid = $result->openid;
//第三部 根据access_token和openiid去获取微信用户信息 第三个参数lang是语言的选择
$user_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
$data = json_decode(do_curl($user_url));
小编虚心的欢迎各位年夜神的指教和纠错,也欢迎没太懂的客官留言,小编会第一时间看到之后进行回复的.
维易PHP培训学院每天发布《「WeChat微信授权登录」PHP微信授权登录小白贴》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。