企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
c#/asp.net 微信接入入口文件及关注默认回复 接入界面 ~~~ using Senparc.Weixin.MP; using Senparc.Weixin.MP.Entities; using Senparc.Weixin.MP.MessageHandlers; string signature = context.Request["signature"]; string timestamp = context.Request["timestamp"]; string nonce = context.Request["nonce"]; string echostr = context.Request["echostr"]; string Token=NetWing.Common.ConfigHelper.GetValue("Token"); string appid = NetWing.Common.ConfigHelper.GetValue("AppID"); if (context.Request.HttpMethod == "GET") { //get method - 仅在微信后台填写URL验证时触发 if (CheckSignature.Check(signature, timestamp, nonce, Token)) { WriteContent(echostr,context); //返回随机字符串则表示验证通过 } else { WriteContent("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token),context); } } else { //判断Post或其他方式请求 if (!Senparc.Weixin.MP.CheckSignature.Check(signature, timestamp, nonce, Token)) { WriteContent("参数错误!",context); return; } //post method - 当有用户想公众账号发送消息时触发 var postModel = new Senparc.Weixin.MP.Entities.Request.PostModel() { Signature = context.Request.QueryString["signature"], Msg_Signature = context.Request.QueryString["msg_signature"], Timestamp = context.Request.QueryString["timestamp"], Nonce = context.Request.QueryString["nonce"], //以下保密信息不会(不应该)在网络上传播,请注意 Token = Token, //EncodingAESKey = model.aeskey, //根据自己后台的设置保持一致 AppId = appid //根据自己后台的设置保持一致 }; //v4.2.2之后的版本,可以设置每个人上下文消息储存的最大数量,防止内存占用过多,如果该参数小于等于0,则不限制 //v4.2.2之后的版本,可以设置每个人上下文消息储存的最大数量,防止内存占用过多,如果该参数小于等于0,则不限制 var maxRecordCount = 0; //自定义MessageHandler,对微信请求的详细判断操作都在这里面。 var messageHandler = new CustomMessageHandler(context.Request.InputStream, postModel, maxRecordCount); try { //执行微信处理过程 //var newRequestMessage = messageHandler.RequestMessage as IRequestMessageEventBase; //if (newRequestMessage.Event== Senparc.Weixin.MP.Event.scan)//如果是扫码 //{ // //翼通自己的处理微信消息的方法 // NetWingCMSWeiXin.NetWingMessageHandler(messageHandler); //} //else //{ messageHandler.Execute(); //} WriteContent(messageHandler.ResponseDocument.ToString(),context); return; } catch (Exception ex) { context.Response.Write(ex.Message); } finally { context.Response.End(); } } context.Response.End(); } private void WriteContent(string str, HttpContext context) { context.Response.Output.Write(str); } ~~~ 调用Handler文件夹,其中CustomMessageContext.cs文件不需要修改只要注意调用的路径。另外两个文件根据你要实现的功能进行对应的改写。 ![](https://box.kancloud.cn/6b4177a02c60c54ac1af872eed4ca137_405x100.png)