抓取用户openid

获取用户微信openid用户无感知情况下 传参为 appid appsecret 当前网址 session_name名称

<?php
//获取微信的openid
function get_wx_str($appid,$appsecret,$link,$session_name='')
{
    if(empty($link))
    {
        $link = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    }
    parse_str($_SERVER['QUERY_STRING'], $query);
    if(!isset($query['code']))
    {
        //未授权
        $redirect = urlencode($link);
        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=" . $redirect . "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
        redirect($url);
    }else
    {
        //已授权
        $code = $query['code'];
        $jsoninfo = get_wx_openid($appid,$appsecret,$code);
        $user_str = $jsoninfo['openid'];
        if($session_name!='')
        {
            $_SESSION[$session_name] = $user_str;
        }else
        {
            $_SESSION['user_str'] = $user_str;
        }
    }
}

//通过code换取网页授权access_token
function get_wx_openid($appid,$appsecret,$code)
{
    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";
    $output = https_request($url);
    $jsoninfo = json_decode($output, true);
    return $jsoninfo;
}
?>

 

posted @ 2016-07-04 16:36  李照耀  阅读(722)  评论(0编辑  收藏  举报