$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->account['key']}&secret={$this->account['secret']}";
$content = ihttp_get($url);
if(is_error($content)) {
return error('-1', '获取微信公众号授权失败, 请稍后重试!错误详情: ' . $content['message']);
}
function ihttp_request($url, $post = '', $extra = array(), $timeout = 60) {
if (function_exists('curl_init') && function_exists('curl_exec') && $timeout > 0) {
$ch = ihttp_build_curl($url, $post, $extra, $timeout);
if (is_error($ch)) {
return $ch;
}
$data = curl_exec($ch);
$status = curl_getinfo($ch);
$errno = curl_errno($ch);
$error = curl_error($ch);
curl_close($ch);
if ($errno || empty($data)) {
return error($errno, $error);
} else {
return ihttp_response_parse($data);
}
}
$urlset = ihttp_parse_url($url, true);
if (!empty($urlset['ip'])) {
$urlset['host'] = $urlset['ip'];
}
$body = ihttp_build_httpbody($url, $post, $extra);
if ($urlset['scheme'] == 'https') {
$fp = ihttp_socketopen('ssl://' . $urlset['host'], $urlset['port'], $errno, $error);
} else {
$fp = ihttp_socketopen($urlset['host'], $urlset['port'], $errno, $error);
}
stream_set_blocking($fp, $timeout > 0 ? true : false);
stream_set_timeout($fp, ini_get('default_socket_timeout'));
if (!$fp) {
return error(1, $error);
} else {
fwrite($fp, $body);
$content = '';
if($timeout > 0) {
while (!feof($fp)) {
$content .= fgets($fp, 512);
}
}
fclose($fp);
return ihttp_response_parse($content, true);
}
}
function ihttp_get($url) {
return ihttp_request($url);
}
找到原因了 ["content"]=> string(129) "{"errcode":40164,"errmsg":"invalid ip 82.156.203.19 ipv6 ::ffff:82.156.203.19, not in whitelist rid: 60b77799-506ddef7-717c2cff"}" ["meta"]=> string(273) "HTTP/1.0 200 OK
Connection: close
Content-Type: application/json; encoding=utf-8
Date: Wed, 02 Jun 2021 12:20:41 GMT
Content-Length: 129
{"errcode":40164,"errmsg":"invalid ip 82.156.203.19 ipv6 ::ffff:82.156.203.19, not in whitelist rid: 60b77799-506ddef7-717c2cff"}"
如下图,那么大家要回到微信公众平台后台查看开发基本配置有没设置IP白名单
下面 微客助理 小编将大家如何来设置IP白名单
“获取access_token”接口新增IP白名单保护
为了提高公众平台开发者接口调用的安全性,避免一旦开发者ID和密码泄露后给帐号造成损失。腾讯对调用“获取access_token”接口增加IP白名单校验:只有将IP地址设置为公众号的IP白名单,才能成功调用该接口。
开启IP白名单的步骤如下:(小提示:点击图片即可查看高清大图哦)
1、登录公众平台,进入开发->基本配置页面
2、点击配置进入IP白名单设置页
3、填写 微客助理 IP地址: 183.63.25.68
4、管理员扫码确认保存
5、设置成功后点击“关闭”
6、修改成功后,状态变为“查看”,可再次修改或添加多个IP地址!