解决微信公众平台IP白名单

简介: 微信公众平台,作为自媒体的旗舰级产品,越来越多的人已经投入它的怀抱。正如它的广告词所说:再小的个体,也有品牌 好吧,闲话不多说,今天要说的是它的IP白名单机制。   我们现在安装的大部分都是电信的家庭宽带,它的公网IP是随机的,当然也可以加钱变成固定IP,也可以通过其他软件映射,都可以...

微信公众平台,作为自媒体的旗舰级产品,越来越多的人已经投入它的怀抱。正如它的广告词所说:再小的个体,也有品牌

好吧,闲话不多说,今天要说的是它的IP白名单机制。

查看白名单

修改白名单

 

我们现在安装的大部分都是电信的家庭宽带,它的公网IP是随机的,当然也可以加钱变成固定IP,也可以通过其他软件映射,都可以变成固定IP

我说的这个方案,也算其中一种吧,就是通过WebAPI方式,把某一台机器的公网IP固定,然后访问公众号的程序部署在这上面,最后这些程序再通过WebAPI方式被其他客户端调用

好了,还是上代码吧

//3,需先将封面上传至目标公众号              
//3.1,下载原公众号中封面图片.判断是否存在?不存在,则下载
//注:需判断文件夹是否存在?若不存在,则创建
string folderName = CurrentAppInfo.AppPath + @"\MaterialFile\thumb\";
if (!Directory.Exists(folderName))
{
    Directory.CreateDirectory(folderName);
}
string fileFullName = folderName + sourceThumbMediaId + ".png";
FileInfo fi = new FileInfo(fileFullName);
if (!fi.Exists)
{
    string sourceAccessToken = this.wxpService.GetAccessToken(this.sourceSourceID);
    Stream imageStream = this.wxpService.GetMaterial(sourceAccessToken, sourceThumbMediaId);
    Image image = Image.FromStream(imageStream);
    Bitmap bitmap = new Bitmap(image);

    bitmap.Save(fileFullName);
}

//3.2,再上传至目标公众号
//此处是上传封面图片
string targetAccessToken = this.wxpService.GetAccessToken(this.targetSourceID);
UploadMaterialApiResultModel modelApiResult1 = this.wxpService.UploadMaterialAny(targetAccessToken, new wxpmaterialBillModel()
{
    IsTemp = "0",
    FileFullName = fi.FullName,
    MaterialType = MaterialType.thumb.ToString()
});
string targetThumbMediaId = modelApiResult1.media_id;

//3,加工数据
wxpapiaccountBillModel modelSourceApiAccount = this.listApiAccount.FirstOrDefault(c => c.SourceID == this.sourceSourceID);
wxpapiaccountBillModel modelTargetApiAccount = this.listApiAccount.FirstOrDefault(c => c.SourceID == this.targetSourceID);
content = content.Replace(modelSourceApiAccount.SourceCode, modelTargetApiAccount.SourceCode);
content = content.Replace(modelSourceApiAccount.SourceName, modelTargetApiAccount.SourceName);

//二维码图片可能有多个,分隔符是:分号
//注:目标地址只获取第1个即可
string[] qrcodeUrl1s = modelSourceApiAccount.QRCodeUrlPath.Split(';');
string qrcodeUrl2 = modelTargetApiAccount.QRCodeUrlPath.Split(';')[0];
foreach (string qrcodeUrl1 in qrcodeUrl1s)
{
    content = content.Replace(qrcodeUrl1, qrcodeUrl2);
}

UploadNewsModel modelUpload = new UploadNewsModel()
{
    title = title,
    author = author,
    digest = digest,
    content = content,
    content_source_url = targetSourceUrl,
    show_cover_pic = "0",
    thumb_media_id = targetThumbMediaId
};

//4,上传素材至目标公众号                
UploadMaterialApiResultModel modelResult = this.wxpService.UploadMaterialNews(targetAccessToken, new List<UploadNewsModel>() { modelUpload });

//4.1,需标记源公众号中此素材已转发
wxpmaterialBillModel modelEditToSource = new wxpmaterialBillModel()
{
    SourceID = this.sourceSourceID,
    MaterialCode = this.sourceMaterialCode,
    IsTranspond = "1",
    ActionName = "SetIsTranspond",
};
this.wxpService.UpdateMaterial(new List<wxpmaterialBillModel>() { modelEditToSource });

 

如上图所示,这是实现图文素材从公众号A复制至公众号B里的代码,这种情况下,我每天在家里打开电脑时,都要在IP白名单中重新设置下电脑的公网IP,不然,会提示

 

改成下面的代码就可以轻松解决,我把程序部署到阿里云上,so easy,换个思路,又是一片新的天空。

copymaterialQueryModel copymaterialParamModel = new Base.Models.copymaterialQueryModel()
{
    sourceSourceID = this.sourceSourceID,
    sourceMaterialCode = this.sourceMaterialCode,
    targetSourceID = this.targetSourceID,
    title = title,
    digest = digest,
    author = author,
    targetSourceUrl = targetSourceUrl,
    wxAccessToken = wxAccessToken
};
UploadMaterialApiResultModel modelResult = WebAPIHelper.WebAPIPostData<UploadMaterialApiResultModel>(ControllerName.WXPublicApi, WXPublicApiActionName.CopyMaterial.ToString(), copymaterialParamModel);

 

最后,发布一个彩蛋,做自媒体的可以看看

Navi.Soft31.微信WinForm框架(含下载地址)  

Navi.Soft31.产品.登录器(永久免费)

 

相关文章
|
3月前
|
Linux 网络安全 API
企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置
企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置
|
Web App开发 SQL 搜索推荐
知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大降薪|架构周报
本周架构视点:知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大规模降薪;网易云音乐起诉腾讯音乐;GitHub 弃用 io;ARM 安谋中国 430 多名员工联名签署公开信,反对软银夺权;Firefox:我们不会卖给亿万富翁
169 0
知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大降薪|架构周报
|
Java
Java微信开发_Exception_02_"errcode":40164,"errmsg":"invalid ip 61.172.68.219, not in whitelist hint
ip查询网址: http://www.ip.cn/一、异常现象今天开始做微信开发,在办公室时能正常获取access_token,晚上回家之后获取access_token时却报出下列错误信息: {"errcode":40164,"errmsg":"invalid ip 61.172.68.219, not in whitelist hint: [KJZfAa0644e575]"}解读:错误代码:40164, 错误信息:无效ip,不在白名单中 于是开始往IP白名单这个方向思考,因为换了个地方,网络不同,电脑的ip地址变了。
2698 0
|
安全
获取微信服务器IP地址
关键字:微信公众平台 微信服务器 IP地址   如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表。 接口调用请求说明 http请求方式: GET https://api.
2246 0
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
544 7
|
1月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
660 1
|
1月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
116 7
ly~
|
2月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
81 6
|
1月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
208 1
|
1月前
|
小程序 前端开发 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【10月更文挑战第3天】随着移动互联网的发展,微信小程序凭借便捷的用户体验和强大的社交传播能力,成为企业拓展业务的新渠道。本文探讨了小程序全栈开发中的身份认证与授权机制,包括手机号码验证、微信登录、第三方登录及角色权限控制等方法,并强调了安全性、用户体验和合规性的重要性,帮助开发者更好地理解和应用这一关键技术。
71 5