微信公众平台C#开发系列(五):获取微信服务器IP地址
微信公众号开发怎么获取微信服务器IP地址
公众号开发基于接口安全等考虑,需要获知微信服务器的IP地址列表,以便应对被有心人恶意调用的情况,由于出口IP及入口IP可能存在变动,微信公众号官方是建议每天请求接口1次主动更新IP池。
接口文档地址:
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_the_WeChat_server_IP_address.html#
接着上一篇:微信公众平台C#开发系列(四):获取access token凭证
部分使用类方法详情 请参考上述链接 ,本文不再重复赘述
获取微信API接口 IP地址
根据文档我们先定义一个WeixinIpPoolResponse类继承 ErrorMessage 用于解析接口结果
ErrorMessage 公共类参考 : 微信公众平台C#开发系列(四):获取access token凭证
namespace YuanTK.WeiXin.Wrapper
{
/// <summary>
/// 微信服务器ip池接口返回值
/// </summary>
public class WeixinIpPoolResponse : ErrorMessage
{
/// <summary>
/// 微信服务器IP地址列表
/// </summary>
public string[] ip_list { get; set; }
}
}
定义一个WeixinIpPool 方法类继承WeiXinRequest 和接口IWeiXin
namespace YuanTK.WeiXin
{
/// <summary>
/// 微信服务器ip池
/// </summary>
public class WeixinIpPool : WeiXinRequest<WeixinIpPoolResponse>, IWeiXin<WeixinIpPoolResponse>
{
/// <summary>
/// 调取的ip池接口类型
/// </summary>
public enum Pool
{
/// <summary>
/// API接口IP:即api.weixin.qq.com的解析地址,由开发者调用微信侧的接入IP。
/// </summary>
get_api_domain_ip,
/// <summary>
/// callback IP:即微信调用开发者服务器所使用的出口IP。
/// </summary>
getcallbackip
}
/// <summary>
/// 接口地址
/// </summary>
String api;
public WeixinIpPool(Pool pool, string access_token)
{
///初始化接口地址
api = $"https://api.weixin.qq.com/cgi-bin/{pool.ToString()}?access_token={access_token}";
}
/// <summary>
/// 调用接口获取结果
/// </summary>
/// <returns></returns>
public WeixinIpPoolResponse GetResponse()
{
return this.Get(api);
}
}
}
调用例子
//通信凭证 参考本文开头链接《微信公众平台C#开发系列(四):获取access token凭证》
string access_token = token.access_token;
IWeiXin<WeixinIpPoolResponse> api = new WeixinIpPool(WeixinIpPool.Pool.get_api_domain_ip, access_token);
//IWeiXin<WeixinIpPoolResponse> api = new WeixinIpPool(WeixinIpPool.Pool.getcallbackip, access_token);
WeixinIpPoolResponse weixinIp= api.GetResponse();
运行请求成功的效果