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一致。")); } }
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 } }