失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 公众号第三方平台开发 教程五 代公众号处理消息和事件

公众号第三方平台开发 教程五 代公众号处理消息和事件

时间:2022-04-13 09:13:27

相关推荐

公众号第三方平台开发 教程五 代公众号处理消息和事件

公众号第三方平台开发 教程一 创建公众号第三方平台

公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取

公众号第三方平台开发 教程三 微信公众号授权第三方平台

公众号第三方平台开发 教程四 代公众号发起网页授权说明

公众号第三方平台开发 教程五 代公众号处理消息和事件

公众号第三方平台开发 教程六 代公众号使用JS SDK说明

另,感谢一下这个大虾的博客,这几篇东西都是在他的博文基础上完成的,他的博客里也有一些接口代码可以下载

微信开发系列教程

当粉丝给公众号信息的时候,服务器会给公众号消息与事件接收URL发送信息

下面直接上处理函数,处理完成之后直接在页面上输出加密后的消息即可。注意要把前台的html代码删除

public void ResponseMessage(){WXBizMsgCrypt wxcpt = new WXBizMsgCrypt();string sReqData = GetPost();string respnseContent = "";string sResponse = ""; //加密之后的回复文本string sMsg = ""; //解析之后的明文int ret = 0;ret = wxcpt.DecryptMsg(sReqMsgSig, sReqTimeStamp, sReqNonce, sReqData, ref sMsg);LogTool.LogToDirDest(filePath, LogType.Debug, string.Format("{1} 接收到的信息:{0}", sReqData, pageUrl));LogTool.LogToDirDest(filePath, LogType.Debug, string.Format("{1} 解析后的消息:{0}", sMsg, pageUrl));var xDoc = XDocument.Parse(sMsg);List<XElement> q = (from c in xDoc.Elements() select c).ToList();var model = new{ToUserName = q.Elements("ToUserName").First().Value,FromUserName = q.Elements("FromUserName").First().Value,CreateTime = q.Elements("CreateTime").First().Value,MsgType = q.Elements("MsgType").First().Value,Content = ("" + q.Elements("Content").First().Value).Trim(),MsgId = q.Elements("MsgId").First().Value};if (false == string.IsNullOrEmpty(model.Content)){switch (model.Content.ToLower()){case "帮助":case "help":case "hello2bizuser": //被关注时自动回复 respnseContent = "使用帮助说明:\r\n------------------------\r\n"+ "常用命令:\r\n"+ "1、查看案例;\r\n"+ "2、联系方式;\r\n"+ "3、帮助或help;\r\n";break;case "查看案例":respnseContent = "查看案例:\r\n------------------------\r\n";break;case "联系方式":respnseContent = "联系方式:\r\n------------------------\r\n";break;default:break;}var textTpl = "<xml>"+ "<ToUserName><![CDATA[{0}]]></ToUserName>"+ "<FromUserName><![CDATA[{1}]]></FromUserName>"+ "<CreateTime>{2}</CreateTime>"+ "<MsgType><![CDATA[{3}]]></MsgType>"+ "<Content><![CDATA[{4}]]></Content>"+ "<FuncFlag>0</FuncFlag>"+ "</xml>";int enRet = wxcpt.EncryptMsg(string.Format(textTpl, model.FromUserName, model.ToUserName, ConvertDateTimeInt(DateTime.Now), "text", respnseContent), sReqTimeStamp, sReqNonce, ref sResponse);LogTool.LogToDirDest(filePath, LogType.Debug, string.Format("{1} 加密前的消息:{0}", string.Format(textTpl, model.FromUserName, model.ToUserName, ConvertDateTimeInt(DateTime.Now), "text", respnseContent), pageUrl));LogTool.LogToDirDest(filePath, LogType.Debug, string.Format("{1} 加密后的消息:{0}", sResponse, pageUrl));Response.Write(sResponse);Response.End();}

如果觉得《公众号第三方平台开发 教程五 代公众号处理消息和事件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。