Beispiel #1
0
        private string getText(InPutMsgObject 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());
        }
Beispiel #2
0
        public ActionResult Post(string signature, string timestamp, string nonce, string echostr)
        {
            XmlDocument    inPutXml       = GetMsgXml();
            string         outPutMsg      = string.Empty;
            XmlElement     root           = inPutXml.DocumentElement;
            InPutMsgObject inPutMsgObject = GetInPutMsgObject(root);
            string         messageType    = inPutMsgObject.MsgType;//获取收到的消息类型。文本(text),图片(image),语音等。

            switch (messageType)
            {
            //当消息为文本时
            case "text":
                outPutMsg = TextCase(inPutMsgObject);
                break;

            case "event":
                if (!string.IsNullOrEmpty(inPutMsgObject.EventName) && inPutMsgObject.EventName.Trim() == "subscribe")
                {
                    //刚关注时的时间,用于欢迎词
                    int    nowtime = ConvertDateTimeInt(DateTime.Now);
                    string msg     = "你要关注我,我有什么办法。随便发点什么试试吧~~~";
                    string resxml  = "<xml>" +
                                     "<ToUserName><![CDATA[" + inPutMsgObject.FromUserName + "]]></ToUserName>" +
                                     "<FromUserName><![CDATA[" + inPutMsgObject.ToUserName + "]]></FromUserName>" +
                                     "<CreateTime>" + nowtime + "</CreateTime>" +
                                     "<MsgType><![CDATA[text]]></MsgType>" +
                                     "<Content><![CDATA[" + msg + "]]></Content>" +
                                     "</xml>";
                    outPutMsg = resxml;
                }
                break;

            case "image":
                break;

            case "voice":
                break;

            case "vedio":
                break;

            case "location":
                break;

            case "link":
                break;

            default:
                break;
            }

            return(Content(outPutMsg));
        }
Beispiel #3
0
        private string TextCase(InPutMsgObject 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>" +
                            "</xml>";

            return(resxml);
        }
Beispiel #4
0
        /// <summary>
        /// 获取回复的消息
        /// </summary>
        /// <param name="root"></param>
        /// <returns></returns>
        private InPutMsgObject GetInPutMsgObject(XmlElement root)
        {
            InPutMsgObject xmlMsg = new InPutMsgObject()
            {
                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);
        }