/// <summary> /// 获取请求XML /// </summary> /// <returns></returns> private XDocument GetrequestMessaageDoc(string url, string token, RequestMsgType requestType, Event? eventType) { RequestMessageBase requestMessaage = null; switch (requestType) { case RequestMsgType.Text: requestMessaage = new RequestMessageText() { Content = Request.Form["Content"], }; break; case RequestMsgType.Location: requestMessaage = new RequestMessageLocation() { Label = Request.Form["Label"], Location_X = double.Parse(Request.Form["Location_X"]), Location_Y = double.Parse(Request.Form["Location_Y"]), Scale = int.Parse(Request.Form["Scale"]) }; break; case RequestMsgType.Image: requestMessaage = new RequestMessageImage() { PicUrl = Request.Form["PicUrl"], }; break; case RequestMsgType.Voice: requestMessaage = new RequestMessageVoice() { Format = Request.Form["Format"], Recognition = Request.Form["Recognition"], }; break; case RequestMsgType.Video: requestMessaage = new RequestMessageVideo() { MsgId = long.Parse(Request.Form["MsgId"]), ThumbMediaId = Request.Form["ThumbMediaId"], }; break; //case RequestMsgType.Link: // break; case RequestMsgType.Event: if (eventType.HasValue) { RequestMessageEventBase requestMessageEvent = null; switch (eventType.Value) { //case Event.ENTER: // break; case Event.LOCATION: requestMessageEvent = new RequestMessageEvent_Location() { Latitude = long.Parse(Request.Form["Event.Latitude"]), Longitude = long.Parse(Request.Form["Event.Longitude"]), Precision = double.Parse(Request.Form["Event.Precision"]) }; break; case Event.subscribe: requestMessageEvent = new RequestMessageEvent_Subscribe() { EventKey = Request.Form["Event.EventKey"], Ticket = Request.Form["Event.Ticket"] }; break; case Event.unsubscribe: requestMessageEvent = new RequestMessageEvent_Unsubscribe(); break; case Event.CLICK: requestMessageEvent = new RequestMessageEvent_Click() { EventKey = Request.Form["Event.EventKey"] }; break; case Event.scan: requestMessageEvent = new RequestMessageEvent_Scan() { EventKey = Request.Form["Event.EventKey"], Ticket = Request.Form["Event.Ticket"] }; break; case Event.VIEW: requestMessageEvent = new RequestMessageEvent_View() { EventKey = Request.Form["Event.EventKey"] }; break; case Event.MASSSENDJOBFINISH: requestMessageEvent = new RequestMessageEvent_MassSendJobFinish() { FromUserName = "******",//系统指定 ErrorCount = int.Parse(Request.Form["Event.ErrorCount"]), FilterCount = int.Parse(Request.Form["Event.FilterCount"]), SentCount = int.Parse(Request.Form["Event.SentCount"]), Status = Request.Form["Event.Status"], TotalCount = int.Parse(Request.Form["Event.TotalCount"]) }; break; case Event.TEMPLATESENDJOBFINISH: requestMessageEvent = new RequestMessageEvent_TemplateSendJobFinish() { FromUserName = "******",//系统指定 MsgID = long.Parse(Request.Form["Event.MsgID"]), Status = Request.Form["Event.Status"], }; break; case Event.scancode_push: requestMessageEvent = new RequestMessageEvent_Scancode_Push() { FromUserName = "******",//系统指定 EventKey = Request.Form["Event.EventKey"], ScanCodeInfo = new ScanCodeInfo() { ScanResult = Request.Form["Event.ScanResult"], ScanType = Request.Form["Event.ScanType"], } }; break; case Event.scancode_waitmsg: requestMessageEvent = new RequestMessageEvent_Scancode_Waitmsg() { FromUserName = "******",//系统指定 EventKey = Request.Form["Event.EventKey"], ScanCodeInfo = new ScanCodeInfo() { ScanResult = Request.Form["Event.ScanResult"], ScanType = Request.Form["Event.ScanType"], } }; break; case Event.pic_sysphoto: var sysphotoPicMd5Sum = Request.Form["Event.PicMd5Sum"]; PicItem sysphotoPicItem = new PicItem() { item = new Md5Sum() { PicMd5Sum = sysphotoPicMd5Sum } }; List<PicItem> sysphotoPicItems = new List<PicItem>(); sysphotoPicItems.Add(sysphotoPicItem); requestMessageEvent = new RequestMessageEvent_Pic_Sysphoto() { FromUserName = "******",//系统指定 EventKey = Request.Form["Event.EventKey"], SendPicsInfo = new SendPicsInfo() { Count = Request.Form["Event.Count"], PicList = sysphotoPicItems } }; break; case Event.pic_photo_or_album: var photoOrAlbumPicMd5Sum = Request.Form["Event.PicMd5Sum"]; PicItem photoOrAlbumPicItem = new PicItem() { item = new Md5Sum() { PicMd5Sum = photoOrAlbumPicMd5Sum } }; List<PicItem> photoOrAlbumPicItems = new List<PicItem>(); photoOrAlbumPicItems.Add(photoOrAlbumPicItem); requestMessageEvent = new RequestMessageEvent_Pic_Sysphoto() { FromUserName = "******",//系统指定 EventKey = Request.Form["Event.EventKey"], SendPicsInfo = new SendPicsInfo() { Count = Request.Form["Event.Count"], PicList = photoOrAlbumPicItems } }; break; case Event.pic_weixin: var weixinPicMd5Sum = Request.Form["Event.PicMd5Sum"]; PicItem weixinPicItem = new PicItem() { item = new Md5Sum() { PicMd5Sum = weixinPicMd5Sum } }; List<PicItem> weixinPicItems = new List<PicItem>(); weixinPicItems.Add(weixinPicItem); requestMessageEvent = new RequestMessageEvent_Pic_Sysphoto() { FromUserName = "******",//系统指定 EventKey = Request.Form["Event.EventKey"], SendPicsInfo = new SendPicsInfo() { Count = Request.Form["Event.Count"], PicList = weixinPicItems } }; break; case Event.location_select: requestMessageEvent = new RequestMessageEvent_Location_Select() { FromUserName = "******",//系统指定 EventKey = Request.Form["Event.EventKey"], SendLocationInfo = new SendLocationInfo() { Label = Request.Form["Event.Label"], Location_X = Request.Form["Event.Location_X"], Location_Y = Request.Form["Event.Location_Y"], Poiname = Request.Form["Event.Poiname"], Scale = Request.Form["Event.Scale"], } }; break; default: throw new ArgumentOutOfRangeException("eventType"); } requestMessaage = requestMessageEvent; } else { throw new ArgumentOutOfRangeException("eventType"); } break; default: throw new ArgumentOutOfRangeException("requestType"); } requestMessaage.MsgId = long.Parse(Request.Form["MsgId"]); requestMessaage.CreateTime = DateTime.Now; requestMessaage.FromUserName = requestMessaage.FromUserName ?? "FromUserName(OpenId)";//用于区别不同的请求用户 requestMessaage.ToUserName = "******"; return requestMessaage.ConvertEntityToXml(); }
/// <summary> /// 获取请求XML /// </summary> /// <returns></returns> private XDocument GetrequestMessaageDoc(string url, string token, RequestMsgType requestType, Event?eventType) { RequestMessageBase requestMessaage = null; switch (requestType) { case RequestMsgType.Text: requestMessaage = new RequestMessageText() { Content = Request.Form["Content"], }; break; case RequestMsgType.Location: requestMessaage = new RequestMessageLocation() { Label = Request.Form["Label"], Location_X = double.Parse(Request.Form["Location_X"]), Location_Y = double.Parse(Request.Form["Location_Y"]), Scale = int.Parse(Request.Form["Scale"]) }; break; case RequestMsgType.Image: requestMessaage = new RequestMessageImage() { PicUrl = Request.Form["PicUrl"], }; break; case RequestMsgType.Voice: requestMessaage = new RequestMessageVoice() { Format = Request.Form["Format"], Recognition = Request.Form["Recognition"], }; break; case RequestMsgType.Video: requestMessaage = new RequestMessageVideo() { MsgId = long.Parse(Request.Form["MsgId"]), ThumbMediaId = Request.Form["ThumbMediaId"], }; break; //case RequestMsgType.Link: // break; case RequestMsgType.Event: if (eventType.HasValue) { RequestMessageEventBase requestMessageEvent = null; switch (eventType.Value) { //case Event.ENTER: // break; case Event.LOCATION: requestMessageEvent = new RequestMessageEvent_Location() { Latitude = long.Parse(Request.Form["Event.Latitude"]), Longitude = long.Parse(Request.Form["Event.Longitude"]), Precision = double.Parse(Request.Form["Event.Precision"]) }; break; case Event.subscribe: requestMessageEvent = new RequestMessageEvent_Subscribe() { EventKey = Request.Form["Event.EventKey"] }; break; case Event.unsubscribe: requestMessageEvent = new RequestMessageEvent_Unsubscribe(); break; case Event.CLICK: requestMessageEvent = new RequestMessageEvent_Click() { EventKey = Request.Form["Event.EventKey"] }; break; case Event.scan: requestMessageEvent = new RequestMessageEvent_Scan() { EventKey = Request.Form["Event.EventKey"], Ticket = Request.Form["Event.Ticket"] }; break; case Event.VIEW: requestMessageEvent = new RequestMessageEvent_View() { EventKey = Request.Form["Event.EventKey"] }; break; case Event.MASSSENDJOBFINISH: requestMessageEvent = new RequestMessageEvent_MassSendJobFinish() { FromUserName = "******", //系统指定 ErrorCount = int.Parse(Request.Form["Event.ErrorCount"]), FilterCount = int.Parse(Request.Form["Event.FilterCount"]), SendCount = int.Parse(Request.Form["Event.SendCount"]), Status = Request.Form["Event.Status"], TotalCount = int.Parse(Request.Form["Event.TotalCount"]) }; break; default: throw new ArgumentOutOfRangeException("eventType"); } requestMessaage = requestMessageEvent; } else { throw new ArgumentOutOfRangeException("eventType"); } break; default: throw new ArgumentOutOfRangeException("requestType"); } requestMessaage.CreateTime = DateTime.Now; requestMessaage.FromUserName = requestMessaage.FromUserName ?? "FromUserName(OpenId)";//用于区别不同的请求用户 requestMessaage.ToUserName = "******"; return(requestMessaage.ConvertEntityToXml()); }