public ActionResult Post(PostModel postModel)
        {
            postModel.Token = Token;
            // postModel.EncodingAESKey = "";          //根据自己后台的设置保持一致
            postModel.AppId = AppId;                       //根据自己后台的设置保持一致

            if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
            {
                //??? 这里有问题,要是不注释的话,就会在这里出错,也就是数字签名有问题。
                //return Content("参数错误!");
            }

            //  1:自定义MessageHandler,对微信请求的详细判断操作都在这里面。  实例化了一个类
            var messageHandler = new CustomMessageHandle(Request.InputStream, postModel);   //接收消息

            //  2:执行微信处理过程----执行完这里之后ResponseMessage才会有值。
            messageHandler.Execute();

            //   2.5:启动消息去重功能
            messageHandler.OmitRepeatedMessage = true;     //启动消息去重功能。

            //  3:return new FixWeixinBugWeixinResult(messageHandler); 这个有换行的问题。
            //return new FixWeixinBugWeixinResult(messageHandler.ToString());

            //  3:注意第三个----为了解决官方微信5.0软件换行bug暂时添加的方法,平时用下面一个方法即可
            return(new WeixinResult(messageHandler));                 //v0.8+
        }
Beispiel #2
0
 /// <summary>
 /// 注册消息监听事件
 /// </summary>
 /// <param name="name">消息名</param>
 /// <param name="handle">消息</param>
 public void AddListener(string name, CustomMessageHandle handle)
 {
     if (!_listeners.ContainsKey(name))
     {
         _listeners.Add(name, handle);
     }
     else
     {
         _listeners[name] += handle;
     }
 }
Beispiel #3
0
 public void RemoveListener(string name, CustomMessageHandle handle)
 {
     if (!_listeners.ContainsKey(name))
     {
         Debug.LogWarning("MessageCenter/RemoveListener Warning : The message not be add , the name is " + name);
         return;
     }
     if (_listeners[name] != null)
     {
         _listeners[name] -= handle;
     }
     if (_listeners[name] == null)
     {
         _listeners.Remove(name);
     }
 }