就是运行不出来嘤嘤嘤,求大佬帮助~
<?php
header("content-type:text/html;charset=utf-8");
$appid='.....';
$appsecret='.....';
$access_token=get_access_token($appid,$appsecret);
$next_openid="";
$user=user_query($access_token,$next_openid);
show_users($user);
function show_users($user)
{
if(empty($user))
return ;
echo "用户总数:" . $user->total . "
";
echo "本次获取用户数:" . $user->count . "
";
$users=$user->data->openid;
foreach ($users as $v)
{
echo $v . "
";
}
}
function get_access_token($appid,$appsecret)
{
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($ch);
if(curl_errno($ch))
{
echo 'Errno' .curl_error($ch);
}
curl_close($ch);
$jsoninfo=json_decode($output,true);
return $jsoninfo["access_token"];
}
function user_query($access_token,$next_openid)
{
$url="https://api.weixin.qq.com/cgi-bin/user/get?access_token=$access_token&next_openid=$next_openid";
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_NOBODY,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result=curl_exec($ch);
if(curl_errno($ch))
{
echo 'Errno' .curl_error($ch);
}
curl_close($ch);
$data=json_decode($result);
if(!empty($data->errcode))
{
return "";
}else
{
return $data;
}
}
?>
报什么错误,微信加强过安全了,获取token的服务器ip地址需要在微信后台配置过,要不会返回错误信息,还有url地址改成这样试试
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
其他变量内置到字符串的也改成连接的
调试了一下你的代码,用户的openid 已经获取出来了没问题,你还需要用openid 调用一个获取用户信息的接口,
你问题描述的不是很清楚,我不知道你问的是上面的代码不能运行还是不能获取用户信息,你的逻辑没有问题,就是还差了一步,入上图
以下是我调试你的代码, 望采纳
<?php
header("content-type:text/html;charset=utf-8");
$appid='';
$appsecret='';
//$access_token=get_access_token($appid,$appsecret);
$next_openid="";
$access_token = "";
$user=user_query($access_token,$next_openid);
show_users($user);
function show_users($user)
{
if(empty($user))
return ;
echo "用户总数:" . $user->total . "";
echo "本次获取用户数:" . $user->count . "\n";
$users=$user->data->openid;
foreach ($users as $v)
echo $v . "\n";
}
function get_userinfo($access_token,$openid)
{
//未经过授权的access_token
//注:这里用的access_token是全局的access_token,即get_access_token()函数方式获取的,有别于授权access_token
//access_token 调用接口凭证
//openid 普通用户的标识,对当前公众号唯一
//lang 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
$url="https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$jsoninfo = getUserInfoRequest($url);
return $jsoninfo;
}
function get_access_token($appid,$appsecret)
{
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($ch);
if(curl_errno($ch))
echo 'Errno' .curl_error($ch);
curl_close($ch);
$jsoninfo=json_decode($output,true);
return $jsoninfo["access_token"];
}
function user_query($access_token,$next_openid)
{
$url="https://api.weixin.qq.com/cgi-bin/user/get?access_token=$access_token&next_openid=$next_openid";
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_NOBODY,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result=curl_exec($ch);
if(curl_errno($ch))
echo 'Errno' .curl_error($ch);
curl_close($ch);
$data=json_decode($result);
if(!empty($data->errcode))
{
return "";
}
else
{
return $data;
}
}
?>