后端开发
网络新概念,云计算、大数据、O2O、电商。。。。
网络新概念,云计算、大数据、O2O、电商。。。。
2018-09-20 16:42:51
微信开发公众号获取openid
官方微信授权说明:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
关于网页授权access_token和普通access_token的区别
1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;没有调用次数限制
2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。每天2000次
public function getopenid(){ $openid=''; if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) { //echo 'sssss'; $appid = $this->wx_config['appid']; //我把微信的appid 写成了全局变量 $secret = $this->wx_config['appsecret'];//同上 if(empty($_GET['code'])){ $url = urlencode('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 //$url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; //$access_token=$this->_get_access_token(); $code=$_GET['code']; $weixin = file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$secret}&code=".$code."&grant_type=authorization_code");//通过code换取网页授权access_token $jsondecode = json_decode($weixin); //对JSON格式的字符串进行编码 $array = get_object_vars($jsondecode);//转换成数组 $openid = $array['openid'];//输出openid //echo $openid; } } }