private void textOtherCase(ExmlMsg xmlMsg, string type) { int nowtime = ConvertDateTimeInt(DateTime.Now); string resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[这是:" + type + "]]></Content><FuncFlag>0</FuncFlag></xml>"; Response.Write(resxml); //TextBox1.Text = "用户:" + msg; }
public void GetCouponTest() { ExmlMsg msg = new ExmlMsg() { Content = "http://mobile.yangkeduo.com/goods.html?goods_id=496395155" }; //var result = wechatController.TextCaseAsync(msg); }
private void ResponseMsg(string weixin)// 服务器响应微信请求 { XmlDocument doc = new XmlDocument(); doc.LoadXml(weixin);//读取xml字符串 XmlElement root = doc.DocumentElement; ExmlMsg xmlMsg = GetExmlMsg(root); //XmlNode MsgType = root.SelectSingleNode("MsgType"); //string messageType = MsgType.InnerText; string messageType = xmlMsg.MsgType;//获取收到的消息类型。文本(text),图片(image),语音等。 try { switch (messageType) { //当消息为文本时 case "text": textCase(xmlMsg); break; case "event": if (!string.IsNullOrEmpty(xmlMsg.EventName) && xmlMsg.EventName.Trim() == "subscribe") { //刚关注时的时间,用于欢迎词 int nowtime = ConvertDateTimeInt(DateTime.Now); string msg = "你要关注我,我有什么办法。随便发点什么试试吧~~~"; string resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + msg + "]]></Content><FuncFlag>0</FuncFlag></xml>"; Response.Write(resxml); } break; case "image": break; case "voice": break; case "vedio": break; case "location": break; case "link": break; default: break; } Response.End(); } catch (Exception) { } }
private void textCase(ExmlMsg xmlMsg) { int nowtime = ConvertDateTimeInt(DateTime.Now); string msg = ""; msg = getText(xmlMsg); string resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + msg + "]]></Content><FuncFlag>0</FuncFlag></xml>"; Response.Write(resxml); }
private string getText(ExmlMsg xmlMsg) { //string con = xmlMsg.Content.Trim(); System.Text.StringBuilder retsb = new StringBuilder(200); retsb.Append("您好,\n"); retsb.Append("您说:" + xmlMsg.Content + "\n"); retsb.Append("您的OPEANID:" + xmlMsg.FromUserName); return retsb.ToString(); }
private string getText(ExmlMsg xmlMsg) { string con = xmlMsg.Content.Trim(); System.Text.StringBuilder retsb = new StringBuilder(200); retsb.Append("这里放你的业务逻辑"); retsb.Append("接收到的消息:" + xmlMsg.Content); retsb.Append("用户的OPEANID:" + xmlMsg.FromUserName); return(retsb.ToString()); }
private ExmlMsg GetExmlMsg(XmlElement root) { ExmlMsg xmlMsg = new ExmlMsg() { FromUserName = root.SelectSingleNode("FromUserName").InnerText, ToUserName = root.SelectSingleNode("ToUserName").InnerText, CreateTime = root.SelectSingleNode("CreateTime").InnerText, MsgType = root.SelectSingleNode("MsgType").InnerText, EventName = "", EventKey = "" }; if (xmlMsg.MsgType.Trim().ToLower() == "text") { xmlMsg.Content = root.SelectSingleNode("Content").InnerText; } else if (xmlMsg.MsgType.Trim().ToLower() == "event") { xmlMsg.EventName = root.SelectSingleNode("Event").InnerText; try { if (root.GetElementsByTagName("EventKey").Count > 0) { xmlMsg.EventKey = root.SelectSingleNode("EventKey").InnerText; } //if (root.GetElementsByTagName("Ticket").Count > 0) //{ // xmlMsg.Ticket = root.SelectSingleNode("Ticket").InnerText; //} } catch (Exception ex) { Log.Info("接收事件推送(EventKey)", ex.Message); } //try //{ // xmlMsg.Ticket = root.SelectSingleNode("Ticket").InnerText; //} //catch (Exception ex) //{ // Log.Info("接收事件推送(Ticket)", ex.Message); //} } return(xmlMsg); }
private ExmlMsg GetExmlMsg(XmlElement root) { ExmlMsg xmlMsg = new ExmlMsg() { FromUserName = root.SelectSingleNode("FromUserName").InnerText, ToUserName = root.SelectSingleNode("ToUserName").InnerText, CreateTime = root.SelectSingleNode("CreateTime").InnerText, MsgType = root.SelectSingleNode("MsgType").InnerText, }; if (xmlMsg.MsgType.Trim().ToLower() == "text") { xmlMsg.Content = root.SelectSingleNode("Content").InnerText; } else if (xmlMsg.MsgType.Trim().ToLower() == "event") { xmlMsg.EventName = root.SelectSingleNode("Event").InnerText; } return(xmlMsg); }
private string GetContent(string key, ExmlMsg xmlMsg) { string resxml = ""; int nowtime = ConvertDateTimeInt(DateTime.Now); switch (key) { case "gameinfo": resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[消息推送]]></Title><Description><![CDATA[微信接口测试demo]]></Description><PicUrl><![CDATA[]]></PicUrl><Url><![CDATA[http://ljx.pqpqpq.cn]]></Url></item></Articles></xml>"; break; case "createqrcode": //获取图片ticket string pams = "{\"expire_seconds\": 2592000, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": 123}}}"; string qrcode = RequestType.HttpPost("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + getAccessToken(), pams); GetJsToken js = JsonConvert.DeserializeObject<GetJsToken>(qrcode); //获取url resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[生成二维码]]></Title><Description><![CDATA[微信接口测试demo]]></Description><PicUrl><![CDATA[https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + HttpUtility.UrlEncode(js.ticket) + "]]></PicUrl><Url><![CDATA[http://ljx.pqpqpq.cn]]></Url></item></Articles></xml>"; break; case "mylocation": string addinfo = ""; string address = RequestType.HttpGet("http://api.map.baidu.com/geocoder/v2/?location=" + x + "," + y + "&output=json&pois=1&ak=EuF8VnvpoIxvLKdmyQOuMPSpbE9ErZe4"); Address add = JsonConvert.DeserializeObject<Address>(address); if (add.status == 0) { addinfo = add.result.formatted_address; } resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[获取我的位置信息]]></Title><Description><![CDATA[您当前所在位置:" + addinfo + "]]></Description><PicUrl><![CDATA[]]></PicUrl><Url><![CDATA[http://ljx.pqpqpq.cn/page/dialogue/myaddressinfo.aspx?x=" + x + "&y=" + y + "]]></Url></item></Articles></xml>"; break; default: break; } return resxml; }
private ExmlMsg GetExmlMsg(XmlElement root) { ExmlMsg xmlMsg = new ExmlMsg() { FromUserName = root.SelectSingleNode("FromUserName").InnerText, ToUserName = root.SelectSingleNode("ToUserName").InnerText, CreateTime = root.SelectSingleNode("CreateTime").InnerText, MsgType = root.SelectSingleNode("MsgType").InnerText, }; if (xmlMsg.MsgType.Trim().ToLower() == "text") { xmlMsg.Content = root.SelectSingleNode("Content").InnerText; } else if (xmlMsg.MsgType.Trim().ToLower() == "event") { xmlMsg.EventName = root.SelectSingleNode("Event").InnerText; } return xmlMsg; }
public string Analysis(HttpContext context, string jsonDate, string appid) { string resxml = ""; try { JobLogs.Writer(log_Folder, "------------------- 分割线 -------------------"); XmlDocument doc = new XmlDocument(); doc.XmlResolver = null; doc.LoadXml(jsonDate);//读取xml字符串 XmlElement root = doc.DocumentElement; ExmlMsg xmlMsg = GetExmlMsg(root); string messageType = xmlMsg.MsgType;//获取收到的消息类型。文本(text),图片(image),语音等。 string openid = xmlMsg.FromUserName; switch (messageType) { //当消息为文本时 case "text": string con = xmlMsg.Content.Trim(); //自动化测试的专用测试公众号 if (con == "TESTCOMPONENT_MSG_TYPE_TEXT") { resxml = ReplyWX.text_xml("TESTCOMPONENT_MSG_TYPE_TEXT_callback", openid, xmlMsg.ToUserName, xmlMsg.CreateTime); } else { #region ** string[] Contents = con.Split(':'); if (Contents.Length == 2 && Contents[0] == "QUERY_AUTH_CODE") { string auth = Contents[0]; string code = Contents[1]; string Appsecret = ""; string Ticket = ""; string Token = ""; string Code = ""; GetToken(appid, ref Appsecret, ref Ticket, ref Token, ref Code); //获取Token JobLogs.Writer(log_Folder, "Token111111111111" + Token); if (Token == "") { appid = "wx1939f9ee65384f14"; GetToken(appid, ref Appsecret, ref Ticket, ref Token, ref Code); } if (Token != "") { JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary <string, object> csInfo = new Dictionary <string, object>(); csInfo.Add("component_appid", appid); // csInfo.Add("authorization_code", code); // string menuInfo = serializer.Serialize(csInfo); string postUrl = "https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=" + Token; string val = TemplateMessage.PostWebRequest(postUrl, menuInfo); JobLogs.Writer(log_Folder, "返回结果:" + val); Dictionary <string, object> dToken = (Dictionary <string, object>)serializer.DeserializeObject(val); if (dToken != null && dToken.Count == 1) { Dictionary <string, object> dInfo = dToken["authorization_info"] as Dictionary <string, object>; string access_token = ""; object value; if (dInfo.TryGetValue("authorizer_access_token", out value)) { access_token = value.ToString(); JobLogs.Writer(log_Folder, "access_token:" + access_token); SendText(access_token, openid, code + "_from_api"); } } } } #endregion } break; case "event": if (!string.IsNullOrEmpty(xmlMsg.EventName) && (xmlMsg.EventName == "subscribe" || xmlMsg.EventName == "SCAN")) { break; JobLogs.Writer("event", jsonDate); //写入日志 Hashtable ht = new Hashtable(); ht["ToUserName"] = xmlMsg.ToUserName; ht["FromUserName"] = xmlMsg.FromUserName; ht["CreateTime"] = xmlMsg.CreateTime; ht["MsgType"] = xmlMsg.MsgType; ht["Event"] = xmlMsg.EventName; ht["EventKey"] = xmlMsg.EventKey; bool zizhu = (string.IsNullOrEmpty(xmlMsg.EventKey) || xmlMsg.EventKey.IndexOf("last_trade_no") >= 0); //是否为自主关注 ht["Independent"] = zizhu; ht["Url"] = context.Request.Url.ToString(); DataFactory.SqlDataBase().InsertByHashtable("Wx_CallbackLog", ht); string AdminHotelId = ApplicationHelper.GetHotelTweetsInfo(xmlMsg.ToUserName).Rows[0]["AdminHotelid"].ToString(); set_user_tag(AdminHotelId, openid); //设置为星标用户 if (zizhu) { //if (xmlMsg.ToUserName.ToString() == "gh_4305dc154099") //{ // //关注智订云推送信息 // resxml = ReplyWX.ZDY_Reply(xmlMsg.ToUserName, xmlMsg.FromUserName, xmlMsg.CreateTime); //} //else //{ // resxml = ReplyWX.AutonomyFollow(xmlMsg.ToUserName, xmlMsg.FromUserName, xmlMsg.CreateTime);//自主关注 //} break; } string[] keys = xmlMsg.EventKey.Split('@'); if (keys.Length < 2) { break; } string key_val = keys[1]; switch (xmlMsg.EventName) { case "subscribe": //用户未关注时,进行关注后的事件推送 switch (key_val) { case "3": //扫描二维码回复事件 3 string userid = keys[2]; ReplyWX.ScanUserCode(xmlMsg.FromUserName, userid, "扫推广码[第三方]"); break; case "4": //扫描酒店/门店二维码回复事件 ReplyWX.ScanHotelCode(xmlMsg.ToUserName, keys[2], xmlMsg.FromUserName, xmlMsg.CreateTime); break; default: break; } break; case "SCAN": //用户已关注时的事件推送 switch (key_val) { case "3": //扫描二维码回复事件 3 string userid = keys[2]; ReplyWX.ScanUserCode(xmlMsg.FromUserName, userid, "扫推广码[第三方]"); break; case "4": //扫描酒店/门店二维码回复事件 ReplyWX.ScanHotelCode(xmlMsg.ToUserName, keys[2], xmlMsg.FromUserName, xmlMsg.CreateTime); break; default: break; } break; case "scancode_push": //用户已关注时的事件推送 switch (key_val) { case "3": //扫描二维码回复事件 3 string userid = keys[2]; ReplyWX.ScanUserCode(xmlMsg.FromUserName, userid, "扫推广码[第三方]"); break; case "4": //扫描酒店/门店二维码回复事件 ReplyWX.ScanHotelCode(xmlMsg.ToUserName, keys[2], xmlMsg.FromUserName, xmlMsg.CreateTime); break; default: break; } break; default: break; } } else if (xmlMsg.EventName == "unsubscribe") //取消订阅 { Hashtable ht = new Hashtable(); ht["ToUserName"] = xmlMsg.ToUserName; ht["FromUserName"] = xmlMsg.FromUserName; ht["CreateTime"] = xmlMsg.CreateTime; ht["MsgType"] = xmlMsg.MsgType; ht["Event"] = xmlMsg.EventName; ht["EventKey"] = xmlMsg.EventKey; ht["Independent"] = "0"; ht["Url"] = context.Request.Url.ToString(); DataFactory.SqlDataBase().InsertByHashtable("Wx_CallbackLog", ht); } else if (xmlMsg.EventName == "CLICK") //点击菜单拉取消息时的事件推送 { string click_key = xmlMsg.EventKey; if (click_key == "wgz") //默认菜单 点击是重新获取一下 菜单权限 { JobLogs.Writer(log_Folder, "------------------默认菜单 点击是重新获取一下 菜单权限-------------------:"); string AdminHotelId = ApplicationHelper.GetHotelTweetsInfo(xmlMsg.ToUserName).Rows[0]["AdminHotelid"].ToString(); set_user_tag(AdminHotelId, openid); //string yd_yrl = string.Format("http://www.zidinn.com/Reservation/HotelList.aspx?AdminHotelid={0}", AdminHotelId); //resxml = ReplyWX.text_xml("<a href='" + yd_yrl + "'>酒店预订</a>", openid, xmlMsg.ToUserName, xmlMsg.CreateTime); } } break; case "image": //2 回复图片消息 break; case "voice": //回复语音消息 break; case "vedio": //回复视频消息 break; case "music": //回复音乐消息 break; case "news": //回复图文消息 break; case "location": //上报地理位置事件 break; case "link": break; default: break; } } catch (Exception ex) { resxml = ex.Message; } return(resxml); }
private void ResponseMsg(string weixin)// 服务器响应微信请求 { string resxml = ""; try { //XmlDocument doc = new XmlDocument(); SafeXmlDocument doc = new SafeXmlDocument(); doc.LoadXml(weixin);//读取xml字符串 XmlElement root = doc.DocumentElement; ExmlMsg xmlMsg = GetExmlMsg(root); string messageType = xmlMsg.MsgType;//获取收到的消息类型。文本(text),图片(image),语音等。 switch (messageType) { //当消息为文本时 case "text": string con = xmlMsg.Content.Trim(); resxml = Reply.reply(con, xmlMsg.ToUserName, xmlMsg.FromUserName, xmlMsg.CreateTime); break; case "event": if (!string.IsNullOrEmpty(xmlMsg.EventName) && (xmlMsg.EventName == "subscribe" || xmlMsg.EventName == "SCAN")) { Hashtable ht = new Hashtable(); ht["ToUserName"] = xmlMsg.ToUserName; ht["FromUserName"] = xmlMsg.FromUserName; ht["CreateTime"] = xmlMsg.CreateTime; ht["MsgType"] = xmlMsg.MsgType; ht["Event"] = xmlMsg.EventName; ht["EventKey"] = xmlMsg.EventKey; bool zizhu = (string.IsNullOrEmpty(xmlMsg.EventKey) || xmlMsg.EventKey.IndexOf("last_trade_no") >= 0); //是否为自主关注 ht["Independent"] = zizhu; ht["Url"] = page.Request.Url.ToString(); DataFactory.SqlDataBase().InsertByHashtable("Wx_CallbackLog", ht); resxml = "error"; if (zizhu) { if (xmlMsg.ToUserName.ToString() == "gh_4305dc154099") { //升维商户平台自己关注推送信息 resxml = Reply.Automatic_SewaFocus(xmlMsg.ToUserName, xmlMsg.FromUserName, xmlMsg.CreateTime); } else { resxml = Reply.AutonomyFollow(xmlMsg.ToUserName, xmlMsg.FromUserName, xmlMsg.CreateTime); //自主关注 } break; } string[] keys = xmlMsg.EventKey.Split('@'); if (keys.Length < 2) { break; } switch (xmlMsg.EventName) { case "subscribe": //用户未关注时,进行关注后的事件推送 if (keys[1] == "codeimg") //账单二维码 1、类型 2、Adminhotelid 3、账单号 { resxml = Reply.zd_subscribe(xmlMsg.ToUserName, keys[3], xmlMsg.FromUserName, xmlMsg.CreateTime, keys[2]); } else if (keys[1] == "3") //扫描二维码回复事件 3 { string userid = keys[2]; resxml = Reply.ScanUserCode(xmlMsg.ToUserName, userid, xmlMsg.FromUserName, xmlMsg.CreateTime); } else if (keys[1] == "4") //扫描酒店/门店二维码回复事件 { resxml = Reply.UnHotelFocusWelfare(xmlMsg.ToUserName, keys[2], xmlMsg.FromUserName, xmlMsg.CreateTime); } break; case "SCAN": //用户已关注时的事件推送 if (keys[1] == "codeimg") //账单二维码 { resxml = Reply.zd_subscribe(xmlMsg.ToUserName, keys[3], xmlMsg.FromUserName, xmlMsg.CreateTime, keys[2]); } else if (keys[1] == "3") //扫描二维码回复事件 3 { string userid = keys[2]; resxml = Reply.ScanUserCode(xmlMsg.ToUserName, userid, xmlMsg.FromUserName, xmlMsg.CreateTime); // Log.Info("已关注(扫描推广二维码):", ToUserName); //resxml = Reply.FocusWelfare(xmlMsg.ToUserName, xmlMsg.EventKey.ToString().Split('@')[2], xmlMsg.FromUserName, xmlMsg.CreateTime); } else if (keys[1] == "4") //扫描酒店/门店二维码回复事件 3 { resxml = Reply.HotelFocusWelfare(xmlMsg.ToUserName, keys[2], xmlMsg.FromUserName, xmlMsg.CreateTime); } break; default: break; } } else if (xmlMsg.EventName == "unsubscribe") //取消订阅 { Hashtable ht = new Hashtable(); ht["ToUserName"] = xmlMsg.ToUserName; ht["FromUserName"] = xmlMsg.FromUserName; ht["CreateTime"] = xmlMsg.CreateTime; ht["MsgType"] = xmlMsg.MsgType; ht["Event"] = xmlMsg.EventName; ht["EventKey"] = xmlMsg.EventKey; ht["Independent"] = "0"; ht["Url"] = page.Request.Url.ToString(); DataFactory.SqlDataBase().InsertByHashtable("Wx_CallbackLog", ht); } break; case "image": //2 回复图片消息 break; case "voice": //回复语音消息 break; case "vedio": //回复视频消息 break; case "music": //回复音乐消息 break; case "news": //回复图文消息 break; case "location": //上报地理位置事件 break; case "link": break; default: break; } } catch (Exception ex) { resxml = ex.Message; Log.Info("消息类型适配器ResponseMsg()", ex.Message); } // Log.Info("返回给微信内容:", "------" + resxml + "------"); page.Response.Write(resxml); page.Response.End(); }
private void textCase(ExmlMsg xmlMsg) { int nowtime = ConvertDateTimeInt(DateTime.Now); string msg = ""; msg = getText(xmlMsg); SessionManager.OpenID = xmlMsg.FromUserName; Utils.CreateFile(@"/log/Oauth33.txt", xmlMsg.Content + "菜单 获取到openid:" + xmlMsg.FromUserName); string resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + msg + "]]></Content><FuncFlag>0</FuncFlag></xml>"; Response.Write(resxml); }
private string getText(ExmlMsg xmlMsg) { string con = xmlMsg.Content.Trim(); System.Text.StringBuilder retsb = new StringBuilder(200); SessionManager.OpenID = xmlMsg.FromUserName; retsb.Append("谢谢您的消息!\n 我们正紧锣密鼓地开发中,敬请期待!"); retsb.Append("接收到的消息:" + xmlMsg.Content); retsb.Append("正在开发中 ...:" + xmlMsg.FromUserName); Utils.CreateFile(@"/log/Oauth.txt", xmlMsg.Content + "ResponseMsg 最新 openid:" + xmlMsg.FromUserName); return retsb.ToString(); }
private void textCase(ExmlMsg xmlMsg) { int nowtime = ConvertDateTimeInt(DateTime.Now); string msg = ""; msg = getText(xmlMsg); string resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + msg + "]]></Content><FuncFlag>0</FuncFlag></xml>"; Response.Write(resxml); }
private string getText(ExmlMsg xmlMsg) { string con = xmlMsg.Content.Trim(); System.Text.StringBuilder retsb = new StringBuilder(200); retsb.Append("这里放你的业务逻辑"); retsb.Append("接收到的消息:" + xmlMsg.Content); retsb.Append("用户的OPEANID:" + xmlMsg.FromUserName); return retsb.ToString(); }
private void ResponseMsg(string weixin)// 服务器响应微信请求 { XmlDocument doc = new XmlDocument(); doc.LoadXml(weixin);//读取xml字符串 XmlElement root = doc.DocumentElement; ExmlMsg xmlMsg = ExmlMsg.GetExmlMsg(root); if (!string.IsNullOrEmpty(xmlMsg.EventName) && xmlMsg.EventName.ToLower() == "location") { Latitude = xmlMsg.Latitude; Longitude = xmlMsg.Longitude; string myxy = RequestType.HttpGet("http://api.map.baidu.com/geoconv/v1/?coords=" + Longitude + "," + Latitude + "&from=1&to=5&ak=EuF8VnvpoIxvLKdmyQOuMPSpbE9ErZe4"); Location locadata = JsonConvert.DeserializeObject<Location>(myxy); x = locadata.result[0].y; y = locadata.result[0].x; } //string messageType = MsgType.InnerText; string messageType = xmlMsg.MsgType;//获取收到的消息类型。文本(text),图片(image),语音等。 try { switch (messageType) { //当消息为文本时 case "text": textCase(xmlMsg); break; //当消息为事件时 case "event": if (!string.IsNullOrEmpty(xmlMsg.EventName)) { string resxml = ""; int nowtime = ConvertDateTimeInt(DateTime.Now); switch (xmlMsg.EventName.Trim()) { case "subscribe": //刚关注时的时间,用于欢迎词 string title = "欢迎关注微信demo\n"; resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[" + title + "]]></Title><Description><![CDATA[微信接口测试demo]]></Description><PicUrl><![CDATA[]]></PicUrl><Url><![CDATA[http://ljx.pqpqpq.cn]]></Url></item></Articles></xml>"; break; case "CLICK": resxml = GetContent(xmlMsg.EventKey, xmlMsg); break; case "MASSSENDJOBFINISH": StringBuilder sb = new StringBuilder(); sb.Append("公众号的微信号:" + xmlMsg.ToUserName + "<br/>"); sb.Append("公众号群发助手的微信号:" + xmlMsg.FromUserName + "<br/>"); sb.Append("创建时间的时间戳:" + Utility.WxHelper.GetTime(xmlMsg.CreateTime).ToString("yyyy-MM-dd HH:mm:ss") + "<br/>"); sb.Append("消息类型:" + xmlMsg.MsgType + "<br/>"); sb.Append("事件信息:" + xmlMsg.EventName + "<br/>"); sb.Append("群发的消息ID:" + xmlMsg.MsgID + "<br/>"); sb.Append("群发的结构:" + xmlMsg.Status + "<br/>"); sb.Append("group_id下粉丝数:" + xmlMsg.TotalCount + "<br/>"); sb.Append("准备发送的粉丝数:" + xmlMsg.FilterCount + "<br/>"); sb.Append("发送成功的粉丝数:" + xmlMsg.SentCount + "<br/>"); sb.Append("发送失败的粉丝数:" + xmlMsg.ErrorCount + "<br/>"); msgresult = sb.ToString(); break; default: break; } Response.Write(resxml); } break; case "image": textOtherCase(xmlMsg, "图片"); break; case "voice": textOtherCase(xmlMsg, "声音,识别结果:" + xmlMsg.Recognition); break; case "shortvideo": textOtherCase(xmlMsg, "视频"); break; case "location": textOtherCase(xmlMsg, "位置"); break; case "link": textOtherCase(xmlMsg, "链接"); break; default: break; } Response.End(); } catch (Exception) { } }
private void textCase(ExmlMsg xmlMsg) { HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"]; int nowtime = GetCreateTime(); string msg = "终于等到你,还好我没放弃!哈哈欢迎关注云e驾!么么哒 U+1F60A \n"; msg += "云e驾是汇聚正规专业驾校的第三方互联网学车平台 U+1F44F \n"; msg += "让每一位学员能学的轻松快乐舒心,是我们最大的目标 U+1F61D \n"; msg += "想学车的小伙伴们,现在学车只需要3800,学多少算多少 \n"; msg += "一起来挑战云e驾学车,开启学车新模式-- -“计时收费”\n"; msg += "关注云e驾立刻领取学车优惠卷和体验卷,参与活动赢学车名额噢! U+1F339 \n"; //msg = getText(xmlMsg); string resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + msg + "]]></Content></xml>"; //string resxml = "<xml><ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName><CreateTime>" + nowtime + "</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[云e驾学车咨询群获取更多一手资料,名额有限哦~]]></Title><Description><![CDATA[" + msg + "]]></Description><PicUrl><![CDATA[http://wx.yune-jia.com/jx/img/title.jpg]] ></PicUrl><Url><![CDATA[http://wx.yune-jia.com]]></Url></item></Articles ></xml>"; context.Response.Write(resxml); }
private string getText(ExmlMsg xmlMsg) { string con = xmlMsg.Content.Trim(); System.Text.StringBuilder retsb = new StringBuilder(200); if (con == "段子") { //retsb.Append("你确定输入的是:" + con + "?"); string[] strDZ = { "跳楼须知:留遗言到六楼;想残废到五楼;要住院到四楼;只吓人到三楼;玩武侠到二楼;看热闹请到一楼。", "一位先生到一家饭店去吃饭,饭菜太难吃了,这个人只吃了一半就不想吃了。“经理先生,请过来。”“先生,要结帐吗?”“让我们来拥抱一下吧!”为什么,先生。”“要告别嘛!今生今世恐怕我们再也不会见面了。", "有一回,有个很坏的太监拦住纪晓岚,要求他讲个笑话。纪晓岚说:“从前,从前有一个人。”然后沉默了许久,这个太监耐不住的问道:“下面呢?”纪晓岚答道:“下面没有了啊!”"}; Random rd = new Random(); int num = rd.Next(strDZ.Length); //retsb.Append("随机数字是:" + rd.Next(strDZ.Length)); retsb.Append(strDZ[num]); } else { //retsb.Append("这里放你的业务逻辑"); retsb.Append("你刚刚输入的是:" + xmlMsg.Content); //retsb.Append("用户的OPEANID:" + xmlMsg.FromUserName); } return retsb.ToString(); }