微信公众平台C#开发系列(五):获取微信服务器IP地址

微信公众平台
86
微信公众平台
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
{
    /// 
    /// 微信服务器ip池接口返回值
    /// 
    public class WeixinIpPoolResponse : ErrorMessage
    {
        /// 
        /// 微信服务器IP地址列表
        /// 
        public string[] ip_list { get; set; }
    }
}

定义一个WeixinIpPool 方法类继承WeiXinRequest 和接口IWeiXin

namespace YuanTK.WeiXin
{
    /// 
    /// 微信服务器ip池
    /// 
    public class WeixinIpPool : WeiXinRequest, IWeiXin
    {

         /// 
        /// 调取的ip池接口类型
        /// 
        public enum Pool
        {
            /// 
            /// API接口IP:即api.weixin.qq.com的解析地址,由开发者调用微信侧的接入IP。
            /// 
            get_api_domain_ip,
            /// 
            /// callback IP:即微信调用开发者服务器所使用的出口IP。
            /// 
            getcallbackip
        }
		
        /// 
        /// 接口地址
        /// 
        String api;
        public WeixinIpPool(Pool pool, string access_token)
        {
            ///初始化接口地址
            api = $"https://api.weixin.qq.com/cgi-bin/{pool.ToString()}?access_token={access_token}";
        }


        /// 
        /// 调用接口获取结果
        /// 
        /// 
        public WeixinIpPoolResponse GetResponse()
        {
            return this.Get(api);
        }
    }
}

调用例子

 //通信凭证 参考本文开头链接《微信公众平台C#开发系列(四):获取access token凭证》
string access_token = token.access_token;
IWeiXin api = new WeixinIpPool(WeixinIpPool.Pool.get_api_domain_ip, access_token);
//IWeiXin api = new WeixinIpPool(WeixinIpPool.Pool.getcallbackip, access_token);
WeixinIpPoolResponse weixinIp= api.GetResponse();

运行请求成功的效果

微信公众平台C#开发系列(五):获取微信服务器IP地址

微信公众平台C#开发系列(十二): 模板消息-设置微信消息的所属行业
微信公众平台C#开发系列(九):删除自定义菜单
微信公众平台C#开发系列(十三):模板消息-获得模板ID
微信公众平台C#开发系列(八):查询自定义菜单
微信公众平台C#开发系列(四):获取access token凭证
微信公众平台C#开发系列(七):创建自定义菜单
微信公众平台C#开发系列(十四): 模板消息-获取模板列表
微信公众平台C#开发系列(二):微信公众号开发的准备工作
微信公众平台C#开发系列(十六)模板消息-发送消息模板
微信公众平台C#开发系列(十五): 模板消息-删除消息模板
微信公众平台C#开发系列(三):公众平台接入
微信公众平台C#开发系列(一):为什么要微信公众号开发
暂无相关内容...
暂无相关内容...
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删