PHP微信公众号网页获取用户信息
前期准备:
(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 | 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。 |
至此就完成微信公众号网页的授权登录了
如若有误或者有其他问题请与我交流:2359582968(微信qq同号)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
