概述
1,获取code
在要实现的地方调用最后的网址,这里需要两项,appid和返回的网址
var appid="{:C('WX_APPID')}";
var back_url="{:U('wx_signback')}";
window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+"&redirect_uri=http://www.baidu.cn"+back_url+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
2,在返回的网址里获取登录者的信息写到数据,
//微信一键登录
public function wx_signback(){
//获得code
$code=$_GET['code'];//获取code
$access_token_url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".C('WX_APPID')."&secret=".C('WX_APPSECRET')."&code=".$code."&grant_type=authorization_code";
$access_token=$this->curl_data($access_token_url);//获取access_token和openid
$user_url="https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token['access_token']."&openid=".$access_token['openid']."&lang=zh_CN";
$user_info=$this->curl_data($user_url);//获取微信的客户信息
$db_user=M("user");
$user_openid=$user_info['openid'];//openid
$user_title=$user_info['nickname'];//昵称
$user_sex=$user_info['sex'];//性别
$user_city=$user_info['city'];//市
$user_province=$user_info['province'];//省份
$user_country=$user_info['country'];//国家
$user_image=$user_info['headimgurl'];//头像
$data_user=array(
'username'=>$user_openid,
'nickname'=>$user_title,
'user_sex'=>$user_sex,
'user_picture'=>$user_image
);
$db_user->where("id=".$this->UID)->save($data_user);
redirect(U("reg_step"));
}
//curl方法
public function curl_data($url,$data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
$info_result=json_decode($output,true);
return $info_result;
}
最后
以上就是舒适红牛为你收集整理的微信公众号关注后直接登录网站的全部内容,希望文章能够帮你解决微信公众号关注后直接登录网站所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复