资讯专栏INFORMATION COLUMN

php获取微信openid

lily_wang / 3264人阅读

摘要:下面是我写的一个关于获取的类微信授权相关接口获取微信授权链接跳转地址参数获取微信触发微信返回码获取码,以获取获取授权网页授权通过获取到的这个方法就是获取的方法。

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

app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state={$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======
";
            var_dump($postfields);
 
            echo "=====info=====" . "
";
            print_r(curl_getinfo($ci));
 
            echo "=====$response=====" . "
";
            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的方法啦。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30395.html

相关文章

  • yii2嵌入微信公众号支付

    摘要:微信公众号支付就是微信商城的一种支付方式,微信支付随着微信的推广使用也被广泛应用。微信公众平台的地址是。代码分析我们需要获取到关注微信公众号的人的。回调的方法使用以上就是我的微信支付。 序言 随着微信被越来越多的人使用,微信商城成为如今的热门。每一个商城都需要有自己的支付方式,微信商城也不例外。微信公众号支付就是微信商城的一种支付方式,微信支付随着微信的推广使用也被广泛应用。今天我主要...

    Ajian 评论0 收藏0
  • 微信小程序获取用户头像+昵称+openid,小程序登录!附前端后端源码!

    摘要:做一款小程序,如果需要判断用户,当然要获取一些基本信息,例如头像,昵称,。所以本次案例就直接上代码了。 做一款小程序,如果需要判断用户,当然要获取一些基本信息,例如头像,昵称,openid。所以本次案例就直接上代码了。 小程序前端 index.wxml 获取头像昵称 {{userInfo.nickName}} ...

    joy968 评论0 收藏0
  • 分享一下这两周爬微信支付的坑~希望有借鉴作用(PHP

    摘要:这个坑就是要注意回调结束要返回成功的响应这几天做微信支付暂时遇到的问题就这么多,只能说注意细节吧,爬过的坑记录下来以后遇到就懂处理了。 前言 其实任何接口开发只要按照给出来的接口文档和例子开发基本上不会有太大问题的,一些问题都是出在杂七杂八的小细节上,现在分享一下微信支付开发中自己遇到的小细节。按照文档做完开发前配置,比如JS安全域名配置、网页授权域名、公众号授权目录等等... 坑一:...

    Tangpj 评论0 收藏0
  • 手把手教你小程序对接微信支付

    摘要:按着我的步骤一步一步操作,你就可以成功的到这个微信支付技能包。原文链接手把手教你实现小程序微信支付由于自己本身就是开发的,所以只涉及到微信支付的开发。我将会一步一步的记录如何实现微信支付的。第一步先上微信支付开发文档境内普通商户里面下载与。 这是我自己研究了两天的微信支付整理得的开发笔记,然后在这里分享给大家,让大家快速上手微信支付。 按着我的步骤一步一步操作,你就可以成功的get到这...

    XBaron 评论0 收藏0
  • 回归PHP(一)——微信接入获取用户信息

    摘要:最近在做公司的微信接入部分。经过几天痛苦的看文档和代码,整理一下接入流程,大致相当于微信官方文档的扩展版本。微信登录接入分为两种,一种是只需要用户,另一种是需要用户昵称和头像等乱七八糟的另一些信息。 最近在做公司的微信接入部分。目前接入部分代码已经由别人写好,但是还有很多问题。经过几天痛苦的看文档和代码,整理一下接入流程,大致相当于微信官方文档的扩展版本。附上官网文档链接。 微信登录接...

    Integ 评论0 收藏0

发表评论

0条评论

lily_wang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<