zoukankan      html  css  js  c++  java
  • 微信授权登陆获取用户信息

    根据微信api和自己实际项目开发;

     1  public function getuserinfo()
     2     {
     3         if (isset($_GET['code'])) {
     4             //获取access_token  openid  refresh_token
     5             $url1 = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $this->appid . '&secret=' . $this->secret . '&code=' . $_GET['code'] . '&grant_type=authorization_code';
     6             $result_access_token = $this->http_curl($url1); //主要返回取access_token 和 openid
     7             $arr = json_decode($result_access_token, true); //数组
     8             //验证access_token是否有效
     9             $url_fresh_verification = 'https://api.weixin.qq.com/sns/auth?access_token=' . $arr['access_token'] . '&openid=' . $arr['openid'] . '';
    10             $refresh_token_istrue = $this->http_curl($url_fresh_verification);
    11             $refresh_token_istrue = json_decode($refresh_token_istrue, true);
    12             if ($refresh_token_istrue['errcode'] != 0) {
    13                 //3.0 重新刷新access_token
    14                 $url_get_new_access_token = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wxeb8d4ef8686310eb&grant_type=refresh_token&refresh_token=' . $arr['refresh_token'] . '';
    15                 $new_access_token = $this->http_curl($url_get_new_access_token);
    16                 $obj = json_decode($new_access_token);
    17                 //重新取得access_token
    18                 $arr['access_token'] = $obj->access_token;
    19             }
    20             // 获取用户信息
    21             if (count($arr) > 2) {
    22                 $url_userinfo = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $arr['access_token'] . '&openid=' . $arr['openid'] . '&lang=zh_CN';
    23                 $result_userinfo = $this->http_curl($url_userinfo);
    24                 //dump(json_decode($result_userinfo,true));
    25             } else {
    26                 echo json_encode($arr);
    27             }
    28         } else {
    29             echo "授权失败";
    30         }
    31     }

    curl会话机制执行url

    1 public function http_curl($url){
    2     $ch=curl_init();//开启会话机制
    3     curl_setopt($ch,CURLOPT_URL,$url);
    4     curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //获取数据返回
    5     curl_setopt($ch,CURLOPT_BINARYTRANSFER,true); //启用
    6     $result=curl_exec($ch); //执行
    7     curl_close($ch); //关闭会话机制
    8     return json_decode($result,true); //true 返回数组,默认返回对象
    9 }
  • 相关阅读:
    幻方~未完待续
    过河(DP)
    生日蛋糕(DFS)
    n皇后问题<dfs>
    POJ 1182_食物链
    POJ 2431 Expedition【贪心】
    POJ 3268_Silver Cow Party
    POJ 1061 青蛙的约会【扩欧】
    【数学】扩展欧几里得算法
    Codeforces 404D Minesweeper 1D
  • 原文地址:https://www.cnblogs.com/dreamysky/p/5908636.html
Copyright © 2011-2022 走看看