PHP-获取公众号openid

766 阅读1分钟
header("Content-Type: text/html;charset=utf-8");		
function getOpenid($appid, $appsecret, $appurl){
    $SERVER_NAME = $_SERVER['SERVER_NAME'];
    $REQUEST_URI = $_SERVER['REQUEST_URI'];
	
	$redirect_uri = urlencode($appurl);//这里用你的网页授权回调地址替换一下
    
	$code = $_GET['code'];
	
    if (!$code) {
        // 网页授权当scope=snsapi_userinfo时才会提示是否授权应用
		$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
        header("location:".$url);
    } else {
        // 获取openid
        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";
        $row = http_curl($url);
        return ($row['openid']);
    }
}
function http_curl($url){
    //用curl传参
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    //关闭ssl验证
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch,CURLOPT_HEADER, 0);
    $output = curl_exec($ch);
    curl_close($ch);
    return json_decode($output, true);

}

    使用方法:
    require_once('class/bc_openid.php');
    $appid = "wx3ad8dea90a92903a";
    $secret = "bbac22ef238492cc9cccba8b88c66d40";
	$appurl = "http://php.bcrm.cn/baicewechat/bc5444.php";
   $openid = getOpenid($appid, $secret, $appurl);