Esempio n. 1
0
        //
        // GET: /wx/callback
        public ActionResult Callback()
        {
            if (Request.HttpMethod == "POST")
            {
                var reader = XmlReader.Create(Request.InputStream);

                var doc = XDocument.Load(reader);
                var xml = doc.Element("xml");
                var msg = new MiddleMessage(xml);
                //把inputstream转换成xelement后,直接交给WebMessageRole来处理吧
                var responseMessage = new WebMessageRole()
                                      .MessageRole(msg)
                                      .HandlerRequestMessage(msg);

                if (responseMessage != null)
                {
                    return(Content(responseMessage.Serializable()));
                }
                return(Content("Error"));
            }
            else
            {
                //需要检查签名
                //测试阶段暂时没处理
                return(Content(Request.QueryString["echostr"]));
            }
        }
Esempio n. 2
0
File: WX.aspx.cs Progetto: MM1314/QG
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                //微信服务器一直把用户发过来的消息,post过来
                if (Request.HttpMethod == "POST")
                {
                    var reader = XmlReader.Create(Request.InputStream);

                    var doc = XDocument.Load(reader);
                    MyLog.Log(doc.ToString());
                    var xml = doc.Element("xml");
                    var msg = new MiddleMessage(xml);

                    //把inputstream转换成xelement后,直接交给WebMessageRole来处理吧
                    var responseMessage = new WebMessageRole()
                                          .MessageRole(msg)
                                          .HandlerRequestMessage(msg);

                    if (responseMessage != null)
                    {
                        Response.Write(responseMessage.Serializable());
#if DEBUG
                        MyLog.Log(responseMessage.Serializable());
#endif
                    }
                }
                else if (Request.HttpMethod == "GET") //微信服务器在首次验证时,需要进行一些验证,但。。。。
                {
                    //我仅需返回给他echostr中的值,就为验证成功,可能微信觉得这些安全策略是为了保障我的服务器,要不要随你吧
                    Response.Write(Request["echostr"].ToString());
                }
            }
            catch (Exception ex)
            {
                MyLog.Log("error:" + ex.ToString());
            }
        }
Esempio n. 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Dictionary <string, object> bugobj = new Dictionary <string, object>();

            try
            {
                bugobj.Add("HttpMethod", Request.HttpMethod.ToString());
                //微信服务器一直把用户发过来的消息,post过来
                if (Request.HttpMethod.ToUpper() == "POST")
                {
                    XDocument doc = null;
                    if (Request.InputStream != null)
                    {
                        var reader = XmlReader.Create(Request.InputStream);
                        doc = XDocument.Load(reader);
                    }

                    if (doc != null)
                    {
                        var xml = doc.Element("xml");
                        // 解析xml消息
                        var msg = new HandleMessage(xml);
                        if (msg != null)
                        {
                            bugobj.Add("消息主体", msg.Element.ToString());
                            TxtLogHelper.WriteDebugLog(bugobj);
                            var responseMessage = new WebMessageRole().MessageRole(msg).HandlerRequestMessage();
                            if (responseMessage != null)
                            {
                                Response.Write(responseMessage.Serializable());
                                bugobj.Add("响应", responseMessage.Serializable());
                            }
                        }
                        else
                        {
                            Response.Write("post数据为空");
                        }
                    }
                    else
                    {
                        Response.Write("post数据为空");
                    }
                }
                else if (Request.HttpMethod.ToUpper() == "GET") //微信服务器在首次验证时,需要进行一些验证,但。。。。
                {
                    bugobj.Add("signature", Request["signature"]);
                    bugobj.Add("timestamp", Request["timestamp"]);
                    bugobj.Add("nonce", Request["nonce"]);
                    bugobj.Add("微信验证", Request["echostr"]);
                    string echostr = string.Empty;
                    if (Request["echostr"] != null)
                    {
                        echostr = Request["echostr"].ToString();
                    }

                    //我仅需返回给他echostr中的值,就为验证成功,可能微信觉得这些安全策略是为了保障我的服务器,要不要随你吧
                    Response.Write(echostr);
                    return;
                }
            }
            catch (Exception ex)
            {
                TxtLogHelper.WriteLog_Day(new TxtLogInfoObject()
                {
                    LogType    = EnumLogType.Error,
                    LogMessage = string.Format("错误信息{0};堆栈信息{1}", ex.Message, ex.StackTrace),
                    LogObject  = ex,
                });

                Response.Write("post数据为空");
            }
            finally
            {
                TxtLogHelper.WriteDebugLog(bugobj);
            }
        }