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;
 }
Esempio n. 2
0
        public void GetCouponTest()
        {
            ExmlMsg msg = new ExmlMsg()
            {
                Content = "http://mobile.yangkeduo.com/goods.html?goods_id=496395155"
            };

            //var result = wechatController.TextCaseAsync(msg);
        }
Esempio n. 3
0
        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)
            {
            }
        }
Esempio n. 4
0
        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();
        }
Esempio n. 6
0
        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());
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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;
        }
Esempio n. 10
0
 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;
 }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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();
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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();
        }
Esempio n. 15
0
 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);
 }
Esempio n. 16
0
        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)
            {

            }
        }
Esempio n. 18
0
        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);
        }
Esempio n. 19
0
 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();
 }