当前位置: 首页 > news >正文

wordpress索引wordpress优化网站

wordpress索引,wordpress优化网站,wordpress流动公告,蛋糕店网站设计模板Senparc.Weixin.Sample.MP是微信公众号样例的.NET6源码#xff0c;项目配置文件appsettings.json的修改和微信公众号测试环境的搭建参考#xff1a;微信公众号调试与Natapp环境搭建。接下来从项目结构#xff0c;项目应用和项目源码3个角度来进行讲解。一.项目结构角度项目代…   Senparc.Weixin.Sample.MP是微信公众号样例的.NET6源码项目配置文件appsettings.json的修改和微信公众号测试环境的搭建参考微信公众号调试与Natapp环境搭建。接下来从项目结构项目应用和项目源码3个角度来进行讲解。一.项目结构角度项目代码整体结构如下所示重点部分是MessageHandlers消息处理器部分包括消息上下文、消息处理器和事件处理器。项目启动起来后的界面为二.应用角度1.数据流的直观过程首先要明白微信客户端、微信服务器和第三方网站这3者之间的数据流关系下面通过用户发送文字为例介绍数据流的过程用户通过微信客户端发送OpenId微信服务器就把该文字发送给第三方网站。当然如果没有第三方网站就是说没有对公众号做二次开发那么用户得不到任何回应消息第三方网站对消息进行处理比如获取该用户的OpenId等相关信息第三方网站把处理后的消息返回给微信服务器微信服务器转发第三方网站的消息给微信客户端这样用户就收到了微信客户端回应的消息微信的消息类型主要包括请求消息和响应消息请求消息就是微信服务器发送给网站的消息而响应消息就是网站发送给微信服务器的消息。具体请求消息和响应消息包含的类型如下所示2.数据流的代码过程(1)公众号消息模拟器公众号消息模拟器输入和输出内容如下所示URL通过Natapp映射的域名即http://fengling.nat300.top - 127.0.0.1:8080。Token、AppId和AESKey参考appsettings.json文件。类型文本、地理位置、图片、语音、视频、时间推送。内容OPENID。文本消息处理器对文本进行处理。(2)Post(PostModel postModel)方法用户发送消息后微信平台自动Post一个请求到方法public async TaskPost(PostModel postModel)并等待响应XML在这个方法中通过自定义MessageHandler进行处理var messageHandler new CustomMessageHandler(await Request.GetRequestMemoryStreamAsync(), postModel, maxRecordCount);真正的微信处理过程方法是public async Task ExecuteAsync(CancellationToken cancellationToken)(3)OnTextRequestAsync(RequestMessageText requestMessage)方法该方法可以根据输入文本进行响应可以是匹配关键字、正则表达式、不回复或者默认响应。三.源码角度1.Program.cs代码首先介绍下Senparc.Weixin SDK整体注册的相关代码// 使用本地缓存必须添加 builder.Services.AddMemoryCache(); // Senparc.Weixin 注册必须 builder.Services.AddSenparcWeixinServices(builder.Configuration); ... var senparcWeixinSetting app.Services.GetServiceIOptionsSenparcWeixinSetting()!.Value; //启用微信配置必须 var registerService app.UseSenparcWeixin(app.Environment,null /*不为null则覆盖appsettings中的SenpacSetting配置*/,null /*不为null则覆盖appsettings中的SenpacWeixinSetting配置*/,register { /*CO2NET全局配置*/ },(register, weixinSetting) {//注册公众号信息可以执行多次注册多个公众号register.RegisterMpAccount(weixinSetting, XXX公众号);}); ...... // 使用公众号的MessageHandler中间件不再需要创建Controller app.UseMessageHandlerForMp(/WeixinAsync, CustomMessageHandler.GenerateMessageHandler, options {options.AccountSettingFunc context Senparc.Weixin.Config.SenparcWeixinSetting; });(1)builder.Services.AddMemoryCache()框架支持内存缓存、Redis、Memcached等多种缓存策略。(2)builder.Services.AddSenparcWeixinServices(builder.Configuration)实现Senparc.Weixin的注册。(3)app.UseSenparcWeixin()该方法集成了CON2ET全局注册以及Senparc.Weixin SDK微信注册过程。(4)app.UseMessageHandlerForMp使用MessageHandler配置会默认使用异步方法messageHandler.ExecuteAsync()。2.WeixinController.cs代码(1)public ActionResult Get(PostModel postModel, string echostr)该方法主要用于微信后台地址验证其它的时候用不到。(2)public async TaskActionResult Post(PostModel postModel)这个方法就是微信服务器转发消息[XML]给网站等待网站处理后返回消息[XML]给微信服务器的过程。(3)messageHandler.OmitRepeatedMessage true;当网站不能及时响应微信服务器的请求时微信服务器会连续发送多条相同MsgId的消息到网站以防止丢包。这种情况就需要利用MsgId对消息进行去重否则网站就会多次执行同一个请求。需要注意的是对于多条带有相同MsgId的请求消息进行多次回复客户端也只能收到微信服务器最后一次重发所对应的这条响应消息。(4)messageHandler.DefaultMessageHandlerAsyncEvent DefaultMessageHandlerAsyncEvent.SelfSynicMethod;当同步方法被重写且异步方法未被重写时尝试调用同步方法。3.CustomMessageContext.cs代码(1)CustomMessageContextCustomMessageContext是消息的上下文写法基本固定直接搬过来就可以使用了。消息上下文用于记录单个用户发送、接收消息的记录就算不同微信公众号同时发送不同的消息两者之间并不会有任何的干扰因为两者的上下文是完全隔离的。(2)CustomMessageContext_MessageContextRemoved当上下文过期被移除时触发的时间。根据WeixinContext中的算法这里的过期消息会在过期后下一条请求执行之前被清除。4.CustomMessageHandler.cs代码CustomMessageHandler和CustomMessageHandler_Events是CustomMessageHandler类的2个部分类前者处理非事件类型的消息比如发送文本、图像等而后者处理事件类型的消息比如点击事件、订阅事件订阅及取消订阅等。这里的请求消息都是普通消息5.CustomMessageHandler_Events.cs代码这里的请求消息都是事件推送消息而事件推送消息又分为3大类型常规事件[公众号基础功能返回事件]菜单事件[各种类型的公众号菜单返回事件]应用事件[应用模块返回事件]参考文献[1]Senparc.Weixin.Sample.MP.slnWeiXinMPSDK\Samples\MP\Senparc.Weixin.Sample.MP.sln[2]Senparc.Weixin SDK源码https://github.com/JeffreySu/WeiXinMPSDK[3]Senparc.Weixin.MP SDK微信公众平台开发教程二十三在.NET Core 2.0/3.0中使用MessageHandler中间件https://www.cnblogs.com/szw/p/Wechat-MessageHandler-Middleware.html[4]微信开发深度解析公众号、小程序高效开发秘籍http://book.weixin.senparc.com/BookHelper[5]微信公众平台接口调试工具https://mp.weixin.qq.com/debug人工智能干货推荐专注于人工智能领域的技术分享游戏元宇宙专注于游戏领域的技术分享
http://www.yutouwan.com/news/6341/

相关文章:

  • 网站没有地图怎么做的有没有专门做标书的网站
  • 网站开发浏览器兼容手机上怎么上传网站
  • 创建网站的准备莱州网站建设
  • 美食网站页面设计模板有什么做h5的网站
  • 常州网站建设seo阿里云 wordpress博客
  • 顺德大良做网站重庆市建设工程施工安全管理信息网
  • 哪个汽车网站好蛋糕店网页设计免费模板
  • 建站工具评测 discuz中国航发网上商城登录入口
  • 做佛像在什么网站发贴效果好点宁波正规网站建设方式
  • 九江市建设工程质量监督站网站网络营销策略包含哪些要素
  • 网站 制作软件专门做音效的网站
  • 澄海玩具网站建设公司制作软件需要什么工具
  • 增塑剂网站建设企业网站功能报价
  • 帝国cms 做的完整的网站有没有上海单位网站建设
  • 百度指数的搜索指数代表什么郑州百度网站优化排名
  • 简述建设网站的步骤单页面网站有哪些
  • 浙江建筑协会网站北京到安阳的火车票时刻表查询
  • 网站背景怎么做厦门网站建设哪里好
  • 苏州网站制作湖南省建设工程造价管理总站网站
  • wordpress去掉版权seo网站做推广公司
  • 小企业建网站wordpress空页面模板
  • 可以自己做网站不网站建设课程设计百度文库
  • 个人宽带备案网站佛山网站建设方案咨询
  • 怎么做好网站营销推广下载学校网站模板下载
  • 高端网站开发找哪家好全运会网站的建设
  • 浅谈高校门户网站建设的规范标准wordpress文章编辑器的插件
  • 做网站的素材哪里找的企业网站有哪些企业
  • 佛山大型网站建设免费设计签名在线生成
  • 做app推广上哪些网站吗wordpress贴代码
  • 深圳营销型网站建设案例在网站后台做网页