Exemple #1
0
        /// <summary>
        /// 初始化 置于主页方法中[OnLoad/Action] 事件绑定请在页面载入之前绑定[放置于global中]
        /// </summary>
        public static void HandleEvent()
        {
            var Request  = HttpContext.Current.Request;
            var Response = HttpContext.Current.Response;

            byte[] bts  = new byte[Request.InputStream.Length];
            int    pos  = Request.InputStream.Read(bts, 0, (int)Request.InputStream.Length);
            string data = Encoding.UTF8.GetString(bts, 0, pos);

            if (pos > 0)
            {
                _HasXMLData = true;
                var      MsgTypeData = XMLHelper.GetNodeValue(data, "MsgType"); //还有file等
                MsgType  msgType     = MsgTypeData.ToLower() == "event" ? MsgType.EventPush : MsgType.NormalMessage;
                MPResult mPResult    = new MPResult(msgType, data);

                BaseParameter baseParameter = new BaseParameter()
                {
                    CreateTime   = XMLHelper.GetNodeIntValue(data, "CreateTime"),
                    FromUserName = XMLHelper.GetNodeValue(data, "FromUserName"),
                    ToUserName   = XMLHelper.GetNodeValue(data, "ToUserName")
                };

                OnXMLReceived?.Invoke(mPResult, baseParameter);

                if (mPResult.MsgTypeData == MsgType.NormalMessage)
                {
                    switch (mPResult.NormalMessageType)
                    {
                    case NormalMessage.Text:
                        OnNmText?.Invoke(FillOtherValueByXML <NmTextParameter>(baseParameter, data));
                        break;

                    case NormalMessage.Image:
                        OnNmImage?.Invoke(FillOtherValueByXML <NmImageParameter>(baseParameter, data));
                        break;

                    case NormalMessage.Voice:
                        OnNmVoice?.Invoke(FillOtherValueByXML <NmVoiceParameter>(baseParameter, data));
                        break;

                    case NormalMessage.Video:
                        OnNmVideo?.Invoke(FillOtherValueByXML <NmVideoParameter>(baseParameter, data));
                        break;

                    case NormalMessage.Shortvideo:
                        OnNmShortvideo?.Invoke(FillOtherValueByXML <NmShortvideoParameter>(baseParameter, data));
                        break;

                    case NormalMessage.Location:
                        OnNmLocation?.Invoke(FillOtherValueByXML <NmLocationParameter>(baseParameter, data));
                        break;

                    case NormalMessage.Link:
                        OnNmLink?.Invoke(FillOtherValueByXML <NmLinkParameter>(baseParameter, data));
                        break;
                    }
                }
                else if (mPResult.MsgTypeData == MsgType.EventPush)
                {
                    switch (mPResult.EventPushType)
                    {
                    case EventPush.Subscribe:
                        OnESubscribe?.Invoke(FillOtherValueByXML <ESubscribeParameter>(baseParameter, data));
                        break;

                    case EventPush.Unsubscribe:
                        OnEUnsubscribe?.Invoke(FillOtherValueByXML <EUnsubscribeParameter>(baseParameter, data));
                        break;

                    case EventPush.Scansubscribe:
                        OnEScansubscribe?.Invoke(FillOtherValueByXML <EScansubscribeParameter>(baseParameter, data));
                        break;

                    case EventPush.ScanUnsubscribe:
                        OnEScanUnsubscribe?.Invoke(FillOtherValueByXML <EScanUnsubscribeParameter>(baseParameter, data));
                        break;

                    case EventPush.Latitude:
                        OnELatitude?.Invoke(FillOtherValueByXML <ELatitudeParameter>(baseParameter, data));
                        break;

                    case EventPush.Click:
                        OnEClick?.Invoke(FillOtherValueByXML <EClickParameter>(baseParameter, data));
                        break;

                    case EventPush.View:
                        OnEView?.Invoke(FillOtherValueByXML <EViewParameter>(baseParameter, data));
                        break;
                    }
                }
                else
                {
                    //otherType
                }
                //Response.Write("<xml><ToUserName><![CDATA[o7PGE0sTN77Iz9-UQfwmGDn-YnSI]]></ToUserName><FromUserName><![CDATA[MiniNetTools]]></FromUserName><CreateTime>1537671502</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你好]]></Content></xml>");
            }
            else
            {
                _HasXMLData = false;
            }
        }
Exemple #2
0
 private void Main_OnXMLReceived1(MPResult mPResult, MPWeiXin.Model.EventModel.BaseParameter baseParameter)
 {
 }