Exemple #1
0
 public virtual ActionResult Get(NeuCharAppPostModel postModel, string echostr, string neucharAppId)
 {
     postModel.Token = Token;
     postModel.AppId = neucharAppId;//加密暂时用不到
     if (postModel.Signature == CheckSignatureWeChat.GetSignature(postModel))
     {
         return(Content(echostr)); //返回随机字符串则表示验证通过
     }
     else
     {
         return(Content($"failed:{postModel.Signature},{CheckSignatureWeChat.GetSignature(postModel.Timestamp, postModel.Nonce, Token)}。" +
                        $"如果你在浏览器中看到这句话,说明此地址可以被作为 NeuChar - App后台的Url,请注意保持Token一致。"));
     }
 }
Exemple #2
0
        public virtual ActionResult Post(NeuCharAppPostModel postModel, string neucharAppId)
        {
            postModel.Token = Token;
            postModel.AppId = neucharAppId;// $"NeuCharApp:AppId:{neucharAppId}";

            if (postModel.Signature != CheckSignatureWeChat.GetSignature(postModel))
            {
                return(Content("参数错误!"));
            }

            //postModel.EncodingAESKey = EncodingAESKey;//根据自己后台的设置保持一致
            //postModel.AppId = AppId;//根据自己后台的设置保持一致

            NeuCharAppMessageHandler messageHandler = null;

            try
            {
#if NET45
                messageHandler = new NeuCharAppMessageHandler(Request.InputStream, postModel);
#else
                messageHandler = new NeuCharAppMessageHandler(Request.GetRequestMemoryStream(), postModel);
#endif

                messageHandler.SaveRequestMessageLog();  //记录 Request 日志(可选)

                messageHandler.Execute();                //执行微信处理过程(关键)

                messageHandler.SaveResponseMessageLog(); //记录 Response 日志(可选)

                var responseText = messageHandler.TextResponseMessage ?? "";
                return(Content(responseText));
            }
            catch (Exception ex)
            {
                #region 异常处理
                SenparcTrace.Log($"NeuCharAppMessageHandler错误:{ex.Message}");

                var logPath = Path.Combine(messageHandler.GetLogPath(), $"Error_{_getRandomFileName()}.txt");
                using (TextWriter tw = new StreamWriter(logPath))
                {
                    tw.WriteLine("ExecptionMessage:" + ex.Message);
                    tw.WriteLine(ex.Source);
                    tw.WriteLine(ex.StackTrace);
                    //tw.WriteLine("InnerExecptionMessage:" + ex.InnerException.Message);

                    if (messageHandler.ResponseDocument != null)
                    {
                        tw.WriteLine(messageHandler.ResponseDocument.ToString());
                    }

                    if (ex.InnerException != null)
                    {
                        tw.WriteLine("========= InnerException =========");
                        tw.WriteLine(ex.InnerException.Message);
                        tw.WriteLine(ex.InnerException.Source);
                        tw.WriteLine(ex.InnerException.StackTrace);
                    }

                    tw.Flush();
                    tw.Close();
                }
                return(Content(""));

                #endregion
            }
        }