Home  >  Article  >  Backend Development  >  How to get openid for WeChat service account in PHP

How to get openid for WeChat service account in PHP

little bottle
little bottleforward
2019-04-27 18:03:473294browse

This article mainly talks about using PHP to implement WeChat service account to obtain openid. It has certain reference value. Interested friends can learn about it.

    public function tetst(){
      if(!isset($_GET['code'])){
              $APPID = $this->app_id;
              $ran = rand(1,100); //预防缓存
              $REDIRECT_URI = 'http://www.onedayoneclass.com/Home/Index/tetst?number='.$ran.''; //一定写上http://
              $scope='snsapi_userinfo';
              $url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$APPID.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state=wx'.'#wechat_redirect';
              //加缓存 随机数
              header("Location:".$url);
          }else{
            $appid = $this->app_id;
            $secret = $this->app_secret;
             $code = $_GET["code"];
             $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
             $ch = curl_init();
             curl_setopt($ch,CURLOPT_URL,$get_token_url);
             curl_setopt($ch,CURLOPT_HEADER,0);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
             curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
             $res = curl_exec($ch);
             curl_close($ch);
             $json_obj = json_decode($res,true);
             //根据openid和access_token查询用户信息
             $access_token = $json_obj['access_token'];
             $openid = $json_obj['openid'];
             $get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
             
             $ch = curl_init();
             curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
             curl_setopt($ch,CURLOPT_HEADER,0);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
             curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
             $res = curl_exec($ch);
             curl_close($ch);
             
             //解析json
             $user_obj = json_decode($res,true);
             $_SESSION['user'] = $user_obj;
             print_r($user_obj);
         }
    }

Result:

Related tutorials: PHP video tutorial

The above is the detailed content of How to get openid for WeChat service account in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete