想要进行微信第三方网页扫码登录必须要到微信开放平台进行注册和获取相关权限
虽然要支付三百块,但是你一年省点就有了,进行了认证了以后就能建网站应用(这里要特别注意,会配置回调授权地址,也就是redirect_uri这个参数,后面会用到)了,这里会有微信给的appid和appsecret。
首要条件:
.第一步:获取code的值:在PC端打开
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
注意修改相关对应的值,这里我被redirect_uri和scope搞了很久,给了个scope=snsapi_login(PC端这个参数必须是这个,而不是snsapi_base和snsapi_userinfo)权限的appid,之前会一直提示:
如果出现这个,就是你的appid没有权限,如果出现如下:
说明你的网站配置有问题,请查看配置。
如果出现这个,说明你已经访问成功了
一下是我借鉴别人的代码弄得:
//-------配置
$AppID='wx033336c794d4';
$AppSecret='d4624c36333337af5443d';
$callback='http://www.yun8888.net/weixin/';//回调地址
//微信登录
session_start();
//-------生成唯一随机串防CSRF攻击
$state=md5(uniqid(rand(),TRUE));
$_SESSION["wx_state"]=$state;//存到SESSION
$callback=urlencode($this->callback);
$wxurl="https://open.weixin.qq.com/connect/qrconnect?appid=".$this->AppID."&redirect_uri={$callback}&response_type=code&scope=snsapi_login&state={$state}#wechat_redirect";
header("Location: $wxurl");
回调地址:
if($_GET['state']!=$_SESSION["wx_state"]){
exit("5001");
}
$AppID='wx33333333334d4';
$AppSecret='d4624c363333330547af5443d';
$url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$AppID.'&secret='.$AppSecret.'&code='.$_GET['code'].'&grant_type=authorization_code';
$ch=curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_URL,$url);
$json=curl_exec($ch);
curl_close($ch);
$arr=json_decode($json,1);
//得到 access_token 与 openid
print_r($arr);
$url='https://api.weixin.qq.com/sns/userinfo?access_token='.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_CN';
$ch=curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_URL,$url);
$json=curl_exec($ch);
curl_close($ch);
$arr=json_decode($json,1);
得到用户资料
print_r($arr);
最终结果:
博个人博客主:http://www.dongdang.xin