后端开发
网络新概念,云计算、大数据、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;
}
}
}