【微信】根据appid, secret, code获取用户基本信息(PHP版)

【微信】根据appid, secret, code获取用户基本信息

网页授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

微信官方文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842


function getUserInfo(){
    $appid = "yourappid"; 
    $secret = "yoursecret"; 
    $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; 
       
    $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);
    return $user_obj;
}
posted @ 2021-06-24 14:28  ddgo's  阅读(1140)  评论(0编辑  收藏  举报
.