• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php获取微信openid方法总结

    使用微信接口,无论是自动登录还是微信支付我们首先需要获取的就是openid,获取openid的方式有两种,一种是在关注的时候进行获取,这种订阅号就可以获取的到,第二种是通过网页授权获取,这种获取需要的是认证服务号。

    今天我要说的是第二种网页授权获取openid。下面是我写的一个关于获取openid的类

    ?php
    
    /**
    
     * 微信授权相关接口
    
     * 
    
     * @link http://www.phpddt.com
    
     */
    
    class Wchat
    
    {
    
       private $app_id = 'wx444444444444';
    
       private $app_secret = '77777777';
    
       private $state='aaaa';
    
      /**
    
       * 获取微信授权链接
    
       * 
    
       * @param string $redirect_uri 跳转地址
    
       * @param mixed $state 参数
    
       */
    
      public function get_authorize_url($redirect_uri = '', $state = '')
    
      {
    
        $redirect_uri = urlencode($redirect_uri);
    
        return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->app_id}redirect_uri={$redirect_uri}response_type=codescope=snsapi_userinfostate={$state}#wechat_redirect";
    
      }
    
       /**
    
       * 获取微信openid
    
       */
    
      public function getOpenid($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网页授权
    
       * 
    
       * @param string $code 通过get_authorize_url获取到的code
    
       */
    
      public function get_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];
    
      }
    
       
    
       
    
      public function http($url, $method='', $postfields = null, $headers = array(), $debug = false)
    
      {
    
        $ci = curl_init();
    
        /* Curl settings */
    
        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 "=====post data======\r\n";
    
          var_dump($postfields);
    
     
    
          echo '=====info=====' . "\r\n";
    
          print_r(curl_getinfo($ci));
    
     
    
          echo '=====$response=====' . "\r\n";
    
          print_r($response);
    
        }
    
        curl_close($ci);
    
        return array($http_code, $response);
    
      }
    
     
    
    }
    
    ?>

    getOpenid($turl)这个方法就是获取openid的方法。前端调用代码如下:

    $openid=isset($_COOKIE['openid'])?$_COOKIE['openid']:'';
    
      
    
       if(empty($openid))
    
       {
    
         $wchat=new wchat();
    
         $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的详细内容,更多请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • PHP通过微信跳转的Code参数获取用户的openid(关键代码)
    上一篇:phpinfo的知识点总结
    下一篇:如何解决PHP获取不到SESSION信息之一般情况
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php获取微信openid方法总结 php,获取,微信,openid,方法,