/// <summary> /// 微信请求接口 /// </summary> /// <returns></returns> public async Task <IActionResult> WeiXin() { CheckSignatureInput input = new CheckSignatureInput() { Token = weiXinConfig.Token, EchoString = HttpContext.Request.Query["echoStr"], Signature = HttpContext.Request.Query["signature"], Timestamp = HttpContext.Request.Query["timestamp"], Nonce = HttpContext.Request.Query["nonce"] }; var check = await _weiXinService.CheckSignature(input); if (check) { //微信token验证 if (HttpContext.Request.Method.ToLower().Equals("get")) { return(Content(input.EchoString)); } //处理微信消息 else { string postString = string.Empty; Request.EnableBuffering(); using (var reader = new StreamReader(Request.Body)) { postString = await reader.ReadToEndAsync(); } //请求body _log.Info(postString); string responseMsg = await _weiXinService.ResponseMsg(postString); return(Content(responseMsg)); } } return(Content("微信token校验不通过")); }
/// <summary> /// 校验Token /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <bool> CheckSignature(CheckSignatureInput input) { return(await Task.FromResult(WeiXinSign.SHA1Encrypt(input.Token, input.Signature, input.Timestamp, input.Nonce))); }