public ActionResult MiniPost(PostModel postModel) { var ent = ""; if (!BasicAPI.CheckSignature(postModel.Signature, postModel.Timestamp, postModel.Nonce, WeixinConfig.Token, out ent)) { //return Content("参数错误!");//v0.7- return(new WeixinResult("参数错误!"));//v0.8+ } var encryptMsg = string.Empty; WeixinMessage message = null; using (var streamReader = new StreamReader(Request.InputStream)) { var decryptMsg = streamReader.ReadToEnd(); message = AcceptMessageAPI.Parse(decryptMsg); } encryptMsg = new WeixinExecutor().Execute(message); return(new WeixinResult(encryptMsg) { ContentType = "text/xml", ContentEncoding = System.Text.UTF8Encoding.UTF8 }); }
public ActionResult Get(PostModel postModel, string echostr) { if (string.IsNullOrEmpty(WeixinConfig.Token)) { return(Content("请先设置Token!")); } var ent = ""; if (!BasicAPI.CheckSignature(postModel.Signature, postModel.Timestamp, postModel.Nonce, WeixinConfig.Token, out ent)) { return(Content("参数错误!")); } return(Content(echostr)); //返回随机字符串则表示验证通过 }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { var token = XiaoWeiXinSdkTask.Token;//微信公众平台后台设置的Token if (string.IsNullOrEmpty(token)) { return(Content("请先设置Token!")); } var ent = ""; if (!BasicAPI.CheckSignature(signature, timestamp, nonce, token, out ent)) { return(Content("参数错误!")); } return(Content(echostr)); //返回随机字符串则表示验证通过 }
public ActionResult Post(PostModel postModel) { postModel.Token = WeixinConfig.Token; //postModel.EncodingAESKey = WeixinConfig.EncodingAESKey; postModel.AppId = WeixinConfig.AppID; var ent = ""; if (!BasicAPI.CheckSignature(postModel.Signature, postModel.Timestamp, postModel.Nonce, WeixinConfig.Token, out ent)) { return(Content("参数错误!")); } var encryptMsg = string.Empty; WeixinMessage message = null; var safeMode = Request.QueryString.Get("encrypt_type") == "aes"; using (var streamReader = new StreamReader(Request.InputStream)) { var decryptMsg = string.Empty; var msg = streamReader.ReadToEnd(); #region 解密 if (safeMode) { var msg_signature = Request.QueryString.Get("msg_signature"); var wxBizMsgCrypt = new WXBizMsgCrypt(WeixinConfig.Token, WeixinConfig.EncodingAESKey, WeixinConfig.AppID); var ret = wxBizMsgCrypt.DecryptMsg(msg_signature, postModel.Timestamp, postModel.Nonce, msg, ref decryptMsg); if (ret != 0)//解密失败 { //TODO:开发者解密失败的业务处理逻辑 Log.Instence.LogWriteLine(string.Format("decrypt message return {0}, request body {1}", ret, msg)); } } else { decryptMsg = msg; } #endregion message = AcceptMessageAPI.Parse(decryptMsg); } var response = new WeixinExecutor().Execute(message); #region 加密 if (safeMode) { var msg_signature = Request.QueryString.Get("msg_signature"); var wxBizMsgCrypt = new WXBizMsgCrypt(WeixinConfig.Token, WeixinConfig.EncodingAESKey, WeixinConfig.AppID); var ret = wxBizMsgCrypt.EncryptMsg(response, postModel.Timestamp, postModel.Nonce, ref encryptMsg); if (ret != 0)//加密失败 { //TODO:开发者加密失败的业务处理逻辑 Log.Instence.LogWriteLine(string.Format("encrypt message return {0}, response body {1}", ret, response)); } } else { encryptMsg = response; } #endregion return(new ContentResult { Content = encryptMsg, ContentType = "text/xml", ContentEncoding = System.Text.UTF8Encoding.UTF8 }); }