PHP之路——微信公众号授权获取用户信息

官方文档链接:http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html

  /**
     * 获取code
     */
    public function actionGetCode()
    {
        $response_type = ‘code‘;
        $scope = ‘snsapi_userinfo‘;
        $conf = yii::$app->params[‘oauth_conf‘][‘oauth_wx_in‘];
        $url = ‘https://open.weixin.qq.com/connect/oauth2/authorize?‘;
        $url .= ‘appid=‘.$conf[‘app_id‘];
        $url .= ‘&redirect_uri=‘ . urlencode($conf[‘redirect_uri‘]);
        $url .= ‘&response_type=code‘;
    //这是微信公众号内获取
        $url .= ‘&scope=snsapi_userinfo‘;
    //这是微信开放平台获取
//        $url .= ‘&scope=snsapi_login‘;
        $url .= ‘&#wechat_redirect‘;

        header(‘Location:‘.$url);

    }

    /**
     * 获取access_token
     */
    public function actionGettoken()
    {
        $conf = yii::$app->params[‘oauth_conf‘][‘oauth_wx_in‘];
        $code = $_GET[‘code‘];
        $url = ‘https://api.weixin.qq.com/sns/oauth2/access_token?‘;
        $url .= ‘appid=‘.$conf[‘app_id‘];
        $url .= ‘&secret=‘.$conf[‘app_key‘];
        $url .= ‘&code=‘.$code;
        $url .= ‘&grant_type=authorization_code‘;

        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_HEADER,0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        $data = curl_exec($ch);
        $data = json_decode($data,true);
        curl_close($ch);

        $access_token = $data[‘access_token‘];
        $openid = $data[‘openid‘];
        $get_user_info_url = ‘https://api.weixin.qq.com/sns/userinfo?access_token=‘.$access_token.‘&openid=‘.$openid.‘&lang=zh_CN‘;

        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
        curl_setopt($ch,CURLOPT_HEADER,0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        $res = curl_exec($ch);
        curl_close($ch);
    //返回的是一个数组,里面存放用户的信息
        $res = json_decode($res,true);

    }
时间: 2024-12-12 09:01:52

PHP之路——微信公众号授权获取用户信息的相关文章

微信公众号开发获取用户信息

一.获取用户基本信息接口 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称.头像.性别.所在城市.语言和关注时间. 获取用户基本信息 开发者可通过OpenID来获取用户基本信息.请使用https协议. 接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/cgi-bin

微信公众号开发--获取用户信息中文乱码的解决方案

在微信开发中我们会经常需要获取用户的信息. 微信给我们提供了获取用户信息的api, 地址为 https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 将其中的access_token替换为我们的access_token openid为关注用户的openid就可以获取到用户的信息了. 问题描述 不过获取到的数据却是中文乱码 而用Java程序获取的结果也是一样的

微信关注公众号以及获取用户信息

1.公众号获取用户信息 /// <summary> /// 获取用户基本信息(包括UnionID机制) /// 注意:如果开发者有在多个公众号,或在公众号.移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求. /// </summary> /// <param name="access_token"></param> /// <param

微信OAuth2网页授权获取用户信息

文档:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html !!! 微信跟用户没有关系类接口采用了OAUTH2 [客户端模式(Client Credentials Grant)],而跟用户有关系的接口,采用OAuth2.0服务端[授权码模式(Authorization Code)]来获得用户的openid:另外需要注意的一点就是需要在开发者中心页配置授权回调域名,域名必须与设置的域名在同一个域下. 网页授权ac

微信公众号授权--前端

公众号授权操作 开发微信公众号时,需要获取到用户的信息,因而不得不设计到微信公众号授权问题(本质是利用OAuth登陆) 开发模式如何进行授权操作 微信公众号提供了两种环境的授权模式,生产环境 开发环境 生产环境也就是正式上线环境,具体不做讨论 重点谈论开发环境(因为道理一样,主要是在开发时,如何能够更好地模拟生产环境下,获取用户信息) 开发环境 申请开发环境微信公众号 获取到用户的 appid 找到对应的网页授权获取用户基本信息,添加域名 填写的域名本地服务器地址(域名 / ip)即可,不区分内

微信开发——通过授权获取用户的基本信息

这年头,招个人不容易,现在大小活都得干了, 现在干起了微信开发这活儿,顺带写点经验. 上一回,写了篇文章是封装微信接口消息的处理的,具体可以看:实现虽易,写好不易--小玩意也能体现编码功力,微信消息处理框架发布 现在来谈谈如何获取通过微信提供的接口来获取微信用户所写的基本信息,包括国家,省,市,昵称.当然,要获取用户的信息,是要经过用户授权.关于这部份的文档,点击这里可以看到. 我要说的是具体的操作. 一.填写授权回调页面的域名 在这里填的是 wx.alinq.org.在获得用户的授权后,会跳转

微信公众平台网页获取用户OpenID方法

下面我们一起来看看关于微信公众平台网页获取用户OpenID方法,有需要了解的朋友可以一起来看看吧.用户点击微信自定义菜单view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值 (即网页链接),达到打开网页的目的,但是view不能获取用户的openid,需要使用微信“网页授权获取用户基本信息”高级接口结合使用,获得用户的登入个人信息.具体方法1.配置网页授权回调域名,如 www.111cn.net2.模拟公众号的第三方网页,http://www.111cn.net/getcodeurl

微信服务号开发-获取用户位置信息

微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动.下面将介绍微信服务号获取用户位置信息的原理与步骤. 原理 1. 位置信息获取流程 2. 位置信息报文 <xml><ToUserName><![CDATA[gh_public_member_account]]></ToUserName> <FromUserName><![CDATA[o

微信公众号发不出信息

今天遇到微信公众号发不出信息,测试报错如下: ( [base_resp] => stdClass Object ( [ret] => -3 [err_msg] => invalid session ) ) 解决方法:到cd /opt/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/cache/下删除所有缓存即可恢复