首页 > PHP教程 > php开发知识文章

php -- 微信公众平台开发--微信服务器IP接口使用

本文主要介绍了微信公众平台开发中的微信服务器IP接口(用于获取微信服务器IP地址)的使用方法,具有很好的参考价值,欢迎大家的学习。

学习了access_token的获取及应用后,就要使用access_token调用下其他微信公众平台的接口,加深认识与使用方法。

获取微信服务器IP地址实例

接口介绍

如果公众号基于安全等考虑,需要获取微信服务器的IP地址列表,来进行相关限制,我们就通过该接口获得微信服务器IP地址列表或者IP网段信息。

实例调用

接口调用请求说明

http请求方式: GET

https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN

参数说明

参数                 是否必须 说明

access_token                 公众号的access_token

返回说明

正常情况下,微信会返回下述JSON数据包给公众号:

{
"ip_list": [
"127.0.0.1",
"127.0.0.2",
"101.226.103.0/25"
]
}

参数 说明

ip_list 微信服务器IP地址列表

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

{"errcode":40013,"errmsg":"invalid appid"}

代码:

/* *获取微信服务器IP地址*/

$appid = "wx78478e595939c538";
$secret = "5540e8ccab4f71dfad752f73cfb85780";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;

$output = httpGet($url);
$token = json_decode($output, true);

//获取到access_token参数
$token = $token['access_token'];
//获取微信服务器IP接口地址
$ipurl = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=".$token."";
$iparr = json_decode(httpGet($ipurl), true);

foreach ($iparr['ip_list'] as $key => $value) {
echo $value . "<br>";//用循环的方式打印IP集合
}


/**
* 请求
*
* @param string $url url参数
*
* @return 数据
*/
function httpGet($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl, CURLOPT_URL, $url);

$res = curl_exec($curl);
curl_close($curl);

return $res;
}

代码解析

使用httpGet()函数,获取到access_token后,继续替换$ipurl值的access_token值;

$iparr = json_decode(httpGet($ipurl), true);通过httpGet()函数获取$ipurl的数据,

然后通过json_decode函数处理后,获取到$iparr,此时,该变量值为一个二维数组,如图所示;

微信公众平台开发--微信服务器IP接口使用

我们需要的是数组中的[ip_list],所以我们单独取出[ip_list]的数组集,并通过foreach循环出每一个微信服务器IP,

代码:

foreach ($iparr['ip_list'] as $key => $value) {
echo $value."<br>";//用循环的方式打印IP集合
}

运行程序调用接口结果,如图所示。

微信公众平台开发--微信服务器IP接口使用

以上就是本文php -- 微信公众平台开发--微信服务器IP接口使用的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本站!

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。