diff --git a/CoreCms.Net.Web.WebApi/Controllers/WeChatOAuth/WeChatOffiaccountNotifyController.cs b/CoreCms.Net.Web.WebApi/Controllers/WeChatOAuth/WeChatOffiaccountNotifyController.cs index 5733a42e..eff5b7ac 100644 --- a/CoreCms.Net.Web.WebApi/Controllers/WeChatOAuth/WeChatOffiaccountNotifyController.cs +++ b/CoreCms.Net.Web.WebApi/Controllers/WeChatOAuth/WeChatOffiaccountNotifyController.cs @@ -84,18 +84,33 @@ namespace CoreCms.Net.Web.Controllers.WeChat // 验证服务器推送 // 文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html - NLogUtil.WriteFileLog(LogLevel.Info, LogType.WeChat, "GET接收到微信推送的数据", JsonConvert.SerializeObject(new + var getModel = new { timestamp, nonce, signature, echoString - })); + }; - var client = _weChatApiHttpClientFactory.CreateWeXinClient(); - var valid = client.VerifyEventSignatureForEcho(callbackTimestamp: timestamp, callbackNonce: nonce, callbackSignature: signature); - return Content(!valid ? "fail" : echoString); + //NLogUtil.WriteFileLog(LogLevel.Info, LogType.WeChat, "GET接收到微信推送的数据", JsonConvert.SerializeObject(getModel)); + + //var client = _weChatApiHttpClientFactory.CreateWeXinClient(); + //var valid = client.VerifyEventSignatureForEcho(callbackTimestamp: timestamp, callbackNonce: nonce, callbackSignature: signature); + + //return Content(!valid ? "fail" : echoString); + + if (!CheckSignature.Check(signature, timestamp, nonce, _weChatOptions.WeiXinToken)) + { + NLogUtil.WriteFileLog(LogLevel.Error, LogType.WeChat, "GET接收到微信推送的数据(签名错误)", JsonConvert.SerializeObject(getModel)); + return Content("fail"); + } + else + { + NLogUtil.WriteFileLog(LogLevel.Info, LogType.WeChat, "GET接收到微信推送的数据(签名成功)", JsonConvert.SerializeObject(getModel)); + return Content(echoString); + } + } /// @@ -271,7 +286,7 @@ namespace CoreCms.Net.Web.Controllers.WeChat var userInfo = await _weChatUserInfoServices.QueryByClauseAsync(p => p.openid == eventModel.FromUserName); if (userInfo == null) { - + userInfo = new Model.Entities.CoreCmsUserWeChatInfo() { isSubscribe = response.IsSubscribed,