微学网

热门关键词:   as  thinkphp  ecshop  xxx  php分页  商务通
热门: ASP.NET PHP编程 ASP编程 JSP编程 Python

PHP微信公众号网页获取用户信息

发布时间:2020-03-05 来源:未知 点击:
前期准备:
 
(1)公众号需要是服务号。
 
(2)在公众号获取appid 和secret 并把服务器的ip地址设置在IP白名单中(位置在:开发->基本配置)
 
 
(3)配置网页授权的域名
 
 
至此微信公众号配置就完成,下面是程序逻辑处理
 
一、先获取code;
 
         需要自己获取的参数
 
         ①appid  在微信的后台可以获取
 
         ②redirect_uri   获取当前的访问的网站,可以用php $_SERVER相关参数组合而成
 
二、code换取网页授权access_token和openid
 
         需要自己获取的参数
 
        ①第一步获取的code
 
        ②appid  在微信的后台可以获取
 
        ③secret在微信的后台可以获取,需要管理员确认才可以获得获取用户信息
 
三、获取用户信息
 
        需要自己获取的参数
 
       ①第二步获取的access_token
 
       ②第二步获取的openid
 
上面实现的基本逻辑,下面是具体的方法
 
一、获取code
 
主要为组合当前的网址;实现方法如下:
 
注意:返回url需要用urlencode做处理,
 
/**
 
 * 获取当前的url 地址
 
 * @return type
 
 */
 
private function get_url(){
 
    //$_SERVER['SERVER_PORT']服务器所使用的端口,判断是否为443端口,443端口主要是用于HTTPS服务。
 
    $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
 
    $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
 
    $path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
 
    $relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info);
 
    return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
 
}
弄好参数就这里可以直接跳转:
 
https://open.weixin.qq.com/connect/oauth2/authorize?appid=“你公众号的appid”&redirect_uri=“方法处理完获得的url”
&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
只需改动中文字部分即可;
 
 
 
二、第一步跳转处理完,其实还是返回当前的url,只是这时候就有code等参数,
 
程序需要判断是否带code,然后用code去获取access_token和openid
 
在这步基本不用自己处理参数。
 
和第一步不同的是,这个时候不能直接跳转,而是需要用类似访问api的方式进行获取你需要的参数
 
PHP的curl方法,这里不懂的可以百度curl get方法。这里不展开讲这个,主要讲这个链接的组合
 
https://api.weixin.qq.com/sns/oauth2/access_token?appid=“公众号的appid”&secret=“公众号的secret”
&code=“第一步获取的code”&grant_type=authorization_code
使用curl获取参数,如果你配置正确和程序访问正确,这个时候你就可以获得access_token和用户的openid了
 
 
 
三、这一步也和第二步差不多
 
将第二步获得的access_token和用户的openid进行url拼接,再用curl访问获取用户的信息了
 
https://api.weixin.qq.com/sns/userinfo?access_token=”第二步获取的access_token”&openid=“第二步获取的openid”
&lang=zh_CN
能获得的用户信息,微信手册是写这么多,具体根据自己需求来取舍
 
参数
 
描述
 
openid
 
用户的唯一标识
 
nickname
 
用户昵称
 
sex
 
用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
 
province
 
用户个人资料填写的省份
 
city
 
普通用户个人资料填写的城市
 
country
 
国家,如中国为CN
 
headimgurl
 
用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
 
privilege
 
用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)
 
unionid
 
只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
 
至此就完成微信公众号网页的授权登录了
 

这就是微学网-程序员之家为你提供的"PHP微信公众号网页获取用户信息"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/9330.html
网络编程 | 前端制作 | 数据库 | CMS教程 | 脚本编程 | 框架 | 微信公众号 | 小程序 | 服务器 | APP开发 |

凡本网站转载的文章、图片等资料的版权归版权所有人所有,因无法和版权所有者一一联系,如果本网站选取的文/图威胁到您的权益,请您及时和本网站联系。 我们会在第一时间内采取措施,避免给双方造 成不必要的损失。
© 2015-2018 微学网 版权所有,并保留所有权利。 备案号:粤ICP备09051474号-1

电脑版 | 移动版