Exemple #1
0
        /// <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校验不通过"));
        }
Exemple #2
0
 /// <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)));
 }