/// <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; } }
private void Main_OnXMLReceived1(MPResult mPResult, MPWeiXin.Model.EventModel.BaseParameter baseParameter) { }