php获取微信openid方法总结
使用微信接口,无论是自动登录还是微信支付我们首先需要获取的就是openid,获取openid的方式有两种,一种是在关注的时候进行获取,这种订阅号就可以获取的到,第二种是通过网页授权获取,这种获取需要的是认证服务号。
今天我要说的是第二种网页授权获取openid。下面是我写的一个关于获取openid的类
app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect"; } /** *获取微信openid */ publicfunctiongetOpenid($turl) { if(!isset($_GET['code'])){ //触发微信返回code码 $url=$this->get_authorize_url($turl,$this->state); Header("Location:$url"); exit(); }else{ //获取code码,以获取openid $code=$_GET['code']; $access_info=$this->get_access_token($code); return$access_info; } } /** *获取授权token网页授权 * *@paramstring$code通过get_authorize_url获取到的code */ publicfunctionget_access_token($code='') { $appid=$this->app_id; $appsecret=$this->app_secret; $token_url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code"; //echo$token_url; $token_data=$this->http($token_url); //var_dump($token_data); if($token_data[0]==200) { $ar=json_decode($token_data[1],TRUE); return$ar; } return$token_data[1]; } publicfunctionhttp($url,$method='',$postfields=null,$headers=array(),$debug=false) { $ci=curl_init(); /*Curlsettings*/ curl_setopt($ci,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1); curl_setopt($ci,CURLOPT_CONNECTTIMEOUT,30); curl_setopt($ci,CURLOPT_TIMEOUT,30); curl_setopt($ci,CURLOPT_RETURNTRANSFER,true); switch($method){ case'POST': curl_setopt($ci,CURLOPT_POST,true); if(!empty($postfields)){ curl_setopt($ci,CURLOPT_POSTFIELDS,$postfields); $this->postdata=$postfields; } break; } curl_setopt($ci,CURLOPT_URL,$url); curl_setopt($ci,CURLOPT_HTTPHEADER,$headers); curl_setopt($ci,CURLINFO_HEADER_OUT,true); $response=curl_exec($ci); $http_code=curl_getinfo($ci,CURLINFO_HTTP_CODE); if($debug){ echo"=====postdata======\r\n"; var_dump($postfields); echo'=====info====='."\r\n"; print_r(curl_getinfo($ci)); echo'=====$response====='."\r\n"; print_r($response); } curl_close($ci); returnarray($http_code,$response); } } ?>
getOpenid($turl)这个方法就是获取openid的方法。前端调用代码如下:
$openid=isset($_COOKIE['openid'])?$_COOKIE['openid']:''; if(empty($openid)) { $wchat=newwchat(); $t_url='http://'.$_SERVER['HTTP_HOST'].'/user.php?act=register'; $info=$wchat->getOpenid($t_url); if($info){ $openid=$info['openid']; setcookie('openid',$openid,time()+86400*30); } }
以上就是我总结的获取openid的方法啦。
以上就是php获取微信openid的详细内容,更多请关注毛票票其它相关文章!