首先我参考的这位仁兄的,感谢他地址 http://blog.csdn.net/a5435431941/article/details/61615851
仁兄的Github:https://github.com/PowerDos/WeChatOAuth2.0
仁兄没有给sql,我的弄好了上传出来 地址: http://download.csdn.net/detail/qq_27229113/9914285
代码也传上来,地址:http://download.csdn.net/detail/qq_27229113/9914291
贴出我改动的部分
//获取用户openid
function getOpenid(){
if(!$_GET['code']){
//获取当前的url地址
// $rUrl=_URL_.__ACTION__.'.html';
$rUrl="www.ypyunedu.com/Home/Demo/index"; //改成当前的url
$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="._APPID_."&redirect_uri=".$rUrl."&response_type=code&scope=snsapi_base&state=12345#wechat_redirect";
//跳转页面
redirect($url,0);
}else{
$aUrl="https://api.weixin.qq.com/sns/oauth2/access_token?appid="._APPID_."&secret="._APPSECRET_."&code=".$_GET['code']."&grant_type=authorization_code";
//获取网页授权access_token和openid等
$data=getHttp($aUrl);
return $data['openid'];
}
}
//获取用户详细信息
function getUserInfo(){
if(!$_GET['code']){
//获取当前的url地址
// $rUrl=_URL_.__ACTION__.'.html';
$rUrl="http://www.ypyunedu.com/Home/Demo/index";//改成当前的url
$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="._APPID_."&redirect_uri=".$rUrl."&response_type=code&scope=snsapi_userinfo&state=12345#wechat_redirect";
//跳转页面
redirect($url,0);
}else{
$getOpenidUrl="https://api.weixin.qq.com/sns/oauth2/access_token?appid="._APPID_."&secret="._APPSECRET_."&code=".$_GET['code']."&grant_type=authorization_code";
//获取网页授权access_token和openid等
$data=getHttp($getOpenidUrl);
$getUserInfoUrl="https://api.weixin.qq.com/sns/userinfo?access_token=".$data['access_token']."&openid=".$data['openid']."&lang=zh_CN";
//获取用户数据
$userInfo=getHttp($getUserInfoUrl);
//默认设置头像是132*132的
$userInfo['headimgurl']=substr($userInfo['headimgurl'],0,strlen($userInfo['headimgurl'])-1);
$userInfo['headimgurl']=$userInfo['headimgurl'].'132';
$userInfo['openid']=$userInfo['openid'];
$userInfo['city']=$userInfo['city'];
$userInfo['province']=$userInfo['province'];
$userInfo['country']=$userInfo['country'];
$userInfo['userInfo']=$userInfo['userInfo'];
$userInfo['nickname']=$userInfo['nickname'];
$userInfo['sex']=$userInfo['sex'];
// 将信息插入数据库
$userInfo['addtime']=date("Y-m-d H:i:s");
//删除language元素
unset($userInfo['language']);
$model=M("");
if($model->table('wUserInfo')->data($userInfo)->add()){
setSession($userInfo);
session("status",null);
}else{
echo "验证错误";
}
}
}
把仁兄的方法粘贴过来
第一步
第二步
配置你的公众号信息
- 进入文件./Application/Common/Conf/config.php
- 将你的公众号相关信息写入
第三步
新建的控制器继承OAuth2Controller类即可实现微信网页授权认证功能
OAuth2Controller类的相关代码
Demo
P.S.
相关认证代码放在目录./Application/Home/Common/function.php
下(不是用TP写的小伙伴可以在这里参考下认证代码)
注意要创建相应的数据库和表。具体更改在function目录下更改getUserInfo()
方法就好