public void ValidRequestConstructorTest()
        {
            // Arrange - Act
            var target = new ValidRequest();

            // Assert
            Assert.IsNotNull(target);
        }
Beispiel #2
0
        public async Task <string> ExecuteAsync()
        {
            var result = "";

            if (!string.IsNullOrEmpty(HttpRequest.QueryString["echostr"]))
            {
                WeiXinRequest = new ValidRequest(this);
            }
            else
            {
                try
                {
                    _logger.LogInformation("后台接收到数据流:{0}", XDoc.ToString());
                    Type type = RequestTypes.Find(T => T.Name.Equals(string.Format("{0}Request", XDoc.Root.Element("MsgType").Value), StringComparison.CurrentCultureIgnoreCase));

                    if (type != null)
                    {
                        WeiXinRequest = (WeiXinRequest)Activator.CreateInstance(type, new object[1] {
                            this
                        });
                    }
                    else
                    {
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogInformation("命令执行出错:{0}", ex.StackTrace);
                }
            }

            ICommand command = Commands.Find(C => C.CanExecute);

            if (command != null)
            {
                try
                {
                    WeiXinResponse = await command.ExecuteAsync();

                    result = WeiXinResponse.ToString();
                }
                catch (Exception ex)
                {
                    _logger.LogInformation("命令执行出错:{0}", ex.StackTrace);
                }
            }

            return(result);
        }
Beispiel #3
0
        public async override Task <WeiXinResponse> ExecuteAsync()
        {
            ValidResponse response = new ValidResponse(WeiXin);
            await Task.Run(() =>
            {
                ValidRequest request = new ValidRequest(WeiXin);
                List <string> list   = new List <string>()
                {
                    _weixinSettings.ValidToken, request.Timestamp, request.Nonce
                };
                list.Sort();

                string validCode = string.Join("", list.ToArray()).SHA1Encrypt();
                if (validCode == request.Signature)
                {
                    response.EchoStr = request.EchoStr;
                }
            });

            return(response);
        }
 public ValidHandler(ISession client, Dictionary <string, string> recv) : base(client, recv)
 {
     _request = new ValidRequest(recv);
 }