公衆號第三方平臺開發 教程一 建立公衆號第三方平臺
公衆號第三方平臺開發 教程二 component_verify_ticket和accessToken的獲取
公衆號第三方平臺開發 教程三 微信公衆號受權第三方平臺
公衆號第三方平臺開發 教程四 代公衆號發起網頁受權說明
公衆號第三方平臺開發 教程五 代公衆號處理消息和事件
公衆號第三方平臺開發 教程六 代公衆號使用JS SDK說明
另,感謝一下這個大蝦的博客,這幾篇東西都是在他的博文基礎上完成的,他的博客裏也有一些接口代碼能夠下載
微信開發系列教程html
當粉絲給公衆號信息的時候,服務器會給公衆號消息與事件接收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" + "一、查看案例;\r\n" + "二、聯繫方式;\r\n" + "三、幫助或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(); }