php 开发微信公众号杂记————非登录获取用户信息

用户关注微信公众号后,通过公众号菜单进入某一网站,此网站获取用户的相关信息

        $appid = "kjklj8+98+989878";    //自己公众号的APPID
        $secret = "jdjkjka564564456564564564";    //自己公众号的 secret  ,需要自行设置

        if(!$this->session->userdata('openid')){
            if(empty($_GET['code'])){
                //这是要回调地址可以有别的写法
                $url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
                //重定向到以上网址,这是微信给的固定地址.必须格式一致
                redirect("https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$url}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect");
            }else{
                //回调成功,获取code,再做请求,获取openid
                $j_access_token=file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$secret}&code={$_GET['code']}&grant_type=authorization_code");
                $a_access_token=json_decode($j_access_token,true);
//                $access_token=$a_access_token["access_token"];//虽然这里 也获取了一个access_token,但是和获取用户详情,还有发送模板信息所使用的access_token不同
                $openid=$a_access_token["openid"];

                $this->session->set_userdata('openid', $openid);

            }
        }

        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;

        $output = https_request($url);
        $access_token_Arr    = json_decode($output,true);
        $access_token        =   $access_token_Arr['access_token'];

        $OpenID                 = $this->session->userdata('openid');
        $get_userinfo = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$access_token}&openid={$OpenID}&lang=zh_CN";
        $userinfo = json_decode(https_request($get_userinfo),true);print_r($userinfo);die

这段代码我写在了一个Public控制器,所有的控制器都继承Public,$userinfo就是当前的微信用户的所用信息,具体见返回结果,或者

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839

 

 

 

转载于:https://my.oschina.net/u/3268486/blog/1510456

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值