• 微信服务号获取openid方法


        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);
             }
        }

    结果:

  • 相关阅读:
    测试小技巧之常用工具
    测试小技巧之浏览器插件
    可变参数列表
    对象属性和数组元素的初始默认值
    静态块(变量)和非静态块(变量)
    类初始化顺序
    基本类型的重载规则
    构造器访问权限控制
    MySQL Server架构图
    递归与非递归实现树的遍历(java)
  • 原文地址:https://www.cnblogs.com/yangzailu/p/8983848.html
Copyright © 2020-2023  润新知