前期准备:
(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