muxiaoye

微信oauth2授权获得用户信息

<?php
session_start();
header("Content-type: text/html; charset=utf-8");
$home = \'index.php\';
class db{
    private $host;
    private $user;
    private $pass;
    private $database;
    private $charset;
    function __construct($host,$user,$pass,$database,$charset){
        $this->host=$host;
        $this->user=$user;
        $this->pass=$pass;
        $this->database=$database;
        $this->charset=$charset;
        $this->connect();
    }
    function connect(){
        mysql_connect($this->host,$this->user,$this->pass) or die ("连接数据库服务器失败!");
        mysql_select_db($this->database) or die ("连接数据库失败!");
        mysql_query("set names $this->charset");        
    }
    function select($sql){
        $select=mysql_query($sql);
        $rows = \'\';
        while($row = mysql_fetch_array($select, MYSQL_ASSOC)) {
        $rows[] = $row;
        }
        return $rows;
    }
    function insert($tab,$col,$value){
        mysql_query("INSERT INTO $tab($col)values($value)");
        return mysql_insert_id();
    }
    function update($tab,$col,$new_value,$colm,$value){
        mysql_query("UPDATE $tab SET $col=$new_value where $colm=$value");    
    }
    function delete($tab,$col,$value){
      mysql_query("DELETE FROM $tab where $col=$value");
    }
    function close(){
    mysql_close();
    }
}
$db = new db(\'127.0.0.1\',\'root\',\'lizhifeng\',\'jinba\',\'utf8\');

//通过oauth2授权获取用户详细信息
//$url = \'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx954b290311defa52&redirect_uri=http://jinba2.emailcar.net&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\';
if(!$_SESSION[\'userid\']){
if (isset($_GET[\'code\'])){
$code = $_GET[\'code\'];
$url = \'https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx954b290311defa52&secret=299a1a9ba0db6d1b09266842de62079c&code=\'.$code.\'&grant_type=authorization_code\';
$json = file_get_contents($url); 
$arr = json_decode($json,true);
$token = $arr[\'access_token\'];  
$openid = $arr[\'openid\'];
$url = \'https://api.weixin.qq.com/sns/userinfo?access_token=\'.$token.\'&openid=\'.$openid.\'&lang=zh_CN\'; 
$json = file_get_contents($url); 
$arr = json_decode($json,true); 
$name = $arr[\'nickname\'];
$imgURL = $arr[\'headimgurl\'];
$sex = $arr[\'sex\'];
$province = $arr[\'province\'];
$city= $arr[\'city\'];
$country= $arr[\'country\'];
$result = $db->select(\'select * from member where openid = "\'.$openid.\'"\');
if($result){
$userid = $result[0][\'id\'];
$_SESSION[\'userid\'] = $userid;
}else{
if($openid){
$userid = $db->insert(\'member\',\'openid,nickname,headimgurl,sex,city,country,province,create_time\',\'"\'.$openid.\'","\'.$name.\'","\'.$imgURL.\'","\'.$sex.\'","\'.$city.\'","\'.$country.\'","\'.$province.\'","\'.time().\'"\');
$_SESSION[\'userid\'] = $userid;
}else{
header("Location: $url"); 
}
}
}else{
    header("Location: $url"); 
}
}
$userid = $userid?$userid:$_SESSION[\'userid\'];




posted on 2015-05-07 11:55  牧小野  阅读(643)  评论(0编辑  收藏  举报

分类:

技术点:

相关文章:

  • 2021-11-09
  • 2021-11-21
  • 2021-11-21
  • 2021-12-01
  • 2021-12-01
  • 2021-07-13
  • 2021-11-04
  • 2021-11-04
猜你喜欢
  • 2021-11-04
  • 2021-11-21
  • 2021-11-21
  • 2021-12-05
  • 2021-12-08
相关资源
相似解决方案