public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseSubscribe = base.CreateResponseMessage <ResponseMessageText>(); responseSubscribe.Content = "欢迎订阅,张辉欢迎您。"; return(responseSubscribe); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { Task.Run(() => { string openId = requestMessage.FromUserName; var replyItem = MpEventBll.GetByKey("ych_subscribe"); if (replyItem != null) { switch (replyItem.ReplyType) { case "text": CustomApi.SendText(BaseClass.AppId, openId, EConvert.ConvertEmojiHtml(Senparc.Weixin.HttpUtility.RequestUtility.UrlDecode(replyItem.ReplyContent))); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyItem.ReplyContent); break; } } }); //将消息转发到客服 var responseMessage = new SuccessResponseMessage(); return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content = "欢迎欢迎"; var message = db.GetSingleRobotMessageForWelcome(); if (message != null) { responseMessage.Content = message.Answer; } if (responseMessage.Content.Contains("[nickname]")) { var accessToken = GetAccessToken(); var userInfo = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetUserInfo(accessToken, requestMessage.FromUserName); responseMessage.Content = responseMessage.Content.Replace("[nickname]", userInfo.nickname); } //if (!string.IsNullOrEmpty(requestMessage.EventKey)) //{ // responseMessage.Content += "\r\n============\r\n场景值:" + requestMessage.EventKey; //} return(responseMessage); }
protected override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = @"文俊豪 男 应用1班 20150301123 身高170 体重60kg"; return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var accessToken = Senparc.Weixin.MP.Containers.AccessTokenContainer.TryGetAccessToken(appId, appSecret); var openId = requestMessage.FromUserName;//获取OpenId var userInfo = Senparc.Weixin.MP.AdvancedAPIs.UserApi.Info(appId, openId, Language.zh_CN); var temp = wx_userService.LoadEntities(u => u.gzh_openid == openId).FirstOrDefault(); if (temp != null) { temp.state = (int)WXUserState.已关注; temp.add_time = DateTime.Now; wx_userService.EditEntity(temp); } else { //新用户 var user = new user(); user.pid = 0; user.name = userInfo.nickname; user.sex = userInfo.sex; user.state = (int)User_state.正常; user.isbuy = (int)Isbuy.未购买; //首次关注赠送积分 var config_ruleItem = Config_ruleService.LoadEntities(n => n.name == "首次关注" && n.state == (int)State.可用).FirstOrDefault(); if (config_ruleItem != null) { var usr = new user_score_record(); usr.id = Guid.NewGuid(); usr.score = config_ruleItem.value != null?Convert.ToDecimal(config_ruleItem.value) : 0; usr.type = (int)Score_type.收益; usr.state = (int)User_score_record_state.已完成; usr.source_name = "首次关注系统赠送"; usr.add_time = DateTime.Now; usr.remark = ((int)Score_source_remark.系统赠送).ToString(); user.total_score += usr.score; user.usable_score += user.total_score; user.user_score_record.Add(usr); } var newUser = new wx_user() { city = userInfo.city, country = userInfo.country, wx_head_protrait = userInfo.headimgurl, nickname = userInfo.nickname, gzh_openid = userInfo.openid, province = userInfo.province, sex = userInfo.sex, add_time = DateTime.Now, unionid = userInfo.unionid, state = (int)WXUserState.已关注, //已关注 user = user, }; wx_userService.AddEntity(newUser); } var responseMessage = base.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = userInfo.nickname + ",欢迎您关注我们~"; return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var accessToken = AccessTokenContainer.TryGetAccessToken(AppId, AppSecret); var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); string result = string.Format("欢迎关注唐门年华公众号!"); // string redirectUrl = AgentUrl + "/WeiXin/OAuth"; // string oAuthUrl = OAuthApi.GetAuthorizeUrl(AppId, // redirectUrl, // "123", OAuthScope.snsapi_base); UserInfoJson userInfo = UserApi.Info(accessToken, requestMessage.FromUserName); int isOk = SaveUser(userInfo); Log.Debug("订阅事件,保存用户", isOk > 0 ? requestMessage.FromUserName + "保存成功" : "保存失败", null); responseMessage.Content = result; if (!string.IsNullOrEmpty(requestMessage.EventKey)) { responseMessage.Content += "\r\n============\r\n场景值:" + requestMessage.EventKey; } return(responseMessage); }
/// <summary> /// 订阅事件 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override Task <IResponseMessageBase> OnEvent_SubscribeRequestAsync(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = base.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = "欢迎订阅TechViews,我们会与您分享最新科技资讯和科技观点!"; return(base.OnEvent_SubscribeRequestAsync(requestMessage)); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { try { LogHelper.LogInfo(string.Format("订阅(关注)事件【FromUserName:{0}, Event:{1}, EventKey:{2}, Ticket:{3}】", requestMessage.FromUserName, requestMessage.Event, requestMessage.EventKey, requestMessage.Ticket)); var tbevent = new data.tbevent(); tbevent.ticket = requestMessage.Ticket; tbevent.@event = requestMessage.Event.ToString(); tbevent.from_username = requestMessage.FromUserName; tbevent.to_username = requestMessage.ToUserName; tbevent.msg_type = requestMessage.MsgType.ToString(); tbevent.create_time = DateTime.Now.Ticks; tbevent.event_key = requestMessage.EventKey; using (var db = data.Entities.NewInstance) { db.tbevents.Add(tbevent); db.SaveChanges(); } } catch (Exception es) { LogHelper.LogError(es); } var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = string.Format("您好{0},欢迎关注我的公众号!", responseMessage.FromUserName); return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); string name = string.Empty; try { var accessToken = AccessTokenContainer.TryGetAccessToken("wxd4d7bd7f8fdc8156", "0482ace1cf1b9dcf702ba4366be65db8"); var _userInfo = UserApi.Info(accessToken, requestMessage.FromUserName); name = _userInfo.nickname; } catch (Exception err) { name = err.Message; } responseMessage.Articles.Add(new Article() { Title = name + ",算算连云港装修多少钱", Description = name + ",算算连云港装修多少钱", PicUrl = "http://jx.51czb.com/Images/bg.png", Url = "http://m.to8to.com/yezhu/zxbj.php?to8to_from=wechat_price&utm_pos=wbcdl" }); return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { try { if (MessageInfo == null) { return(new SuccessResponseMessage()); } var sinfo = GetWechatSubscribe(); if (sinfo != null) { if (sinfo.MsgType == WechatEnums.MsgTypeEnum.文字消息) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content = MessageInfo.SubscribeMsg; Subscribe(requestMessage); return(responseMessage); } else { var responseMessagePic = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageNews>(requestMessage); responseMessagePic.ArticleCount = 1; responseMessagePic.Articles.Add(GetPicSubscribe()); Subscribe(requestMessage); return(responseMessagePic); } } return(new SuccessResponseMessage()); } catch (Exception ex) { Logger.ErrorFormat("微信关注推送消息失败 error:{0} Exception:{1}", ex.Message, ex); return(new SuccessResponseMessage()); } }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); responseMessage.Articles.Add(new Article() { Title = "欢迎关注【Ai我家】", Description = "欢迎关注【Ai我家】,让他为您提供全方位的物业家庭服务。", Url = "http://v.homekeeper.com.cn/WeixinProduct/Index/", PicUrl = "http://v.homekeeper.com.cn/Images/Weixin/welcome.png" }); responseMessage.Articles.Add(new Article() { Title = "绑定小区获得更多功能", Description = "通过绑定小区可以获得更多功能。点击链接进行小区绑定", Url = "http://v.homekeeper.com.cn/WeixinIdentityBind/Index/", PicUrl = "http://v.homekeeper.com.cn/Images/Weixin/bangdin_place.png" }); responseMessage.Articles.Add(new Article() { Title = "分享二维码给好友邻居,关注【Ai我家】微信公众号", Description = "分享二维码给好友邻居,关注【Ai我家】微信公众号。", Url = "http://v.homekeeper.com.cn/WeixinProduct/QrCodeShare/", PicUrl = "http://v.homekeeper.com.cn/Images/Weixin/share_qr.png" }); return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { //var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage); //responseMessage.Content = GetWelcomeInfo(); string DayLifeUrl = WebConfigurationManager.AppSettings["DayLifeUrl"] == null ? "" : WebConfigurationManager.AppSettings["DayLifeBakUrl"]; //日常地址 string DayLifeBakUrl = WebConfigurationManager.AppSettings["DayLifeBakUrl"] == null ? "http://59.61.72.34:8025/" : WebConfigurationManager.AppSettings["DayLifeBakUrl"]; //日常地址 var responseMessage = CreateResponseMessage <ResponseMessageNews>(); responseMessage.Articles.Add(new Article() { Title = "我的任务日常", Description = "模拟我的地下城日常", PicUrl = string.Format("{0}/Content/flat-ui/img/icons/png/Retina-Ready.png", DayLifeUrl), Url = string.Format("{0}/LifeDay/NoLifeNoGame?weixin={1}&missionType=0", DayLifeUrl, requestMessage.FromUserName) }); responseMessage.Articles.Add(new Article() { Title = "我的任务日常_备用地址", Description = "模拟我的life日常", PicUrl = string.Format("{0}/Content/flat-ui/img/icons/png/Retina-Ready.png", DayLifeBakUrl), Url = string.Format("{0}/LifeDay/NoLifeNoGame?weixin={1}&missionType=0", DayLifeBakUrl, requestMessage.FromUserName) }); return(responseMessage); }
protected override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = @"作者姓名:施锋 性别:男 班级:2班 学号:20150301208 爱好:乒乓球。"; return(responseMessage); }
protected override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = @"李胜涛 男 应用2班 20150301215 爱好吃饭"; return(responseMessage); }
public override RequestMessageBase GetRequestEntityMappingResult(RequestMsgType requestMsgType, XDocument doc = null) { RequestMessageBase requestMessage; switch (requestMsgType) { case RequestMsgType.Text: requestMessage = new RequestMessageText(); //借用MP的对象,也可以在单元测试中新建类 break; case RequestMsgType.Event: //判断Event类型 switch (doc.Root.Element("Event").Value.ToUpper()) { case "SUBSCRIBE": //订阅(关注) requestMessage = new RequestMessageEvent_Subscribe(); break; default: requestMessage = new RequestMessageUnknownType(); break; } break; default: throw new Exception("未定义此类型:" + requestMsgType); } return(requestMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { #region //var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage); //responseMessage.Content = GetWelcomeInfo(); //return responseMessage; //BLL.BUser Subuser = new BLL.BUser(); //UserInfoJson uij = Subuser.GetUserInfo(requestMessage.FromUserName); #endregion MCComm.FileHelper.WriteLog("OnEvent_SubscribeRequest", requestMessage.EventKey); var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageNews>(requestMessage); responseMessage.Articles.Add(new Article { Title = "欢迎关注{0}公众平台".FormatWith(MPBasicSetting.WeChatTitleName), Description = "轻松赚钱 改变生活", PicUrl = "http://" + MPBasicSetting.wxUrl + "/Images/welcome.jpg" //Url = "http://" + MPBasicSetting.wxUrl + "/Account/UserBing?openid=" + responseMessage.ToUserName + "&IsSkip=1" }); //responseMessage.Articles.Add(new Article //{ // Title = "点击此处获取航运通+V3.0下载地址", // Description = "www.sunnysoft.com.cn/HangyuntongV3.aspx", // PicUrl = "http://" + MPBasicSetting.wxUrl + "/Images/downloadURL.png", // Url = "http://" + MPBasicSetting.wxUrl + "/Account/DownURL" //}); return(responseMessage); }
/// <summary> /// 关注后事件 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { //如果关注前是通过访问某个页面进来,则重定向至此页 if (TemplateMessageCollection.ContainsKey(requestMessage.FromUserName)) { var url = TemplateMessageCollection[requestMessage.FromUserName]; var responseMessage = CreateResponseMessage <ResponseMessageNews>(); responseMessage.Articles.Add(new Article() { Title = "欢迎关注模来模往", Description = GetDescriptionFromUrl(url), Url = url }); TemplateMessageCollection.Remove(requestMessage.FromUserName); return(responseMessage); } else { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content = "欢迎关注模来模往。"; return(responseMessage); } }
/// 订阅(关注)事件 public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content += LogInvite(requestMessage.EventKey, requestMessage.FromUserName, "Scan"); return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content = GetWelcomeInfo(); if (!string.IsNullOrEmpty(requestMessage.EventKey)) { responseMessage.Content += "\r\n============\r\n场景值:" + requestMessage.EventKey; } //推送消息 //下载文档 if (requestMessage.EventKey.StartsWith("qrscene_")) { var sceneId = long.Parse(requestMessage.EventKey.Replace("qrscene_", "")); //var configHelper = new ConfigHelper(new HttpContextWrapper(HttpContext.Current)); var codeRecord = ConfigHelper.CodeCollection.Values.FirstOrDefault(z => z.QrCodeTicket != null && z.QrCodeId == sceneId); if (codeRecord != null) { //确认可以下载 codeRecord.AllowDownload = true; AdvancedAPIs.CustomApi.SendText(null, WeixinOpenId, GetDownloadInfo(codeRecord)); } } return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { //关注时回复 AutoRlyInfo autoRly = SinGooCMS.BLL.AutoRly.GetFocusRly(); switch (autoRly.MsgType) { case WeixinMsgType.Text: var responseMessageText = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessageText.Content = autoRly.MsgText; return(responseMessageText); case WeixinMsgType.Image: { var responseMessageNews = CreateResponseMessage <ResponseMessageNews>(); responseMessageNews.Articles.Add(new Article() { Title = autoRly.MsgText, Description = autoRly.Description, PicUrl = Utils.GetUrlWithDomain(autoRly.MediaPath), Url = autoRly.LinkUrl }); return(responseMessageNews); } } return(null); }
public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { ResponseMessageText expr_06 = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); expr_06.Content = "欢迎关注漫游上海公众平台。或许每一间旧商铺,旧名居,旧街道还在吧,城市的肌理她一直在那里,让我们去漫游上海吧! 用户可以直接输入地址或专有地名进行搜索,鉴于平台数据仍在完善未能搜索到结果情况请见谅"; return(expr_06); }
//订阅事件方法 protected override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = @"欢迎关注!【班级:计算机应用技术二班】\n【姓名:梁阔雄】\n【学号:20150301241】\n【性别:男】"; return(responseMessage); }
///// <summary> ///// Event事件类型请求之subscribe ///// </summary> ///// <param name="requestMessage"></param> ///// <returns></returns> //public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) //{ // var responseMessage = this.CreateResponseMessage<ResponseMessageText>(); // responseMessage.Content = "欢迎关注-DSX用于测试的消息"; // return responseMessage; //} /// <summary> /// Event事件类型请求之subscribe /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { if (_wechatConfig == null) { string orgId = ConfigHelper.GetValue("OrgId"); _wechatConfig = wechatConfigBll.GetEntityByOrgId(orgId); } if (_wechatConfig != null) { var responseMessage = this.CreateResponseMessage <ResponseMessageNews>(); string regUrl = string.Format("{0}/base_info", _wechatConfig.WxDomainUrl); var container = new MessageContainer <Article> { new Article() { Title = "感谢您的关注", Description = "绑定帐号后即可享受健康信息推送服务", Url = regUrl, PicUrl = string.Format("{0}/static/img/register.png", _wechatConfig.WxDomainUrl) } }; responseMessage.Articles = container; return(responseMessage); } else { var responseMessage = this.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = "感谢您的关注!"; return(responseMessage); } }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> /// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content = "你好,欢迎关注美雀公众号!"; return(responseMessage); }
public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = base.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = "欢迎关注零度云平台微信公众号。"; return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { AppCtx ctx = AppCtx.Current; ctx.SetContextHandler(this); return(ctx.GetHandler().SubscribeRequest(ctx, requestMessage)); }
/// <summary> /// /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public IResponseMessageBase GetResponseMessage(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CustomResponseMessage.TextMessage(requestMessage); responseMessage.Content = GetWelcomeInfo(); return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); //获取Senparc.Weixin.MP.dll版本信息 var fileVersionInfo = FileVersionInfo.GetVersionInfo(HttpContext.Current.Server.MapPath("~/bin/Senparc.Weixin.MP.dll")); //var version = fileVersionInfo.FileVersion; try { bool blAddUser = false; blAddUser = UAMS_UserManager.AddUser(requestMessage.FromUserName); if (!blAddUser) { Log.WriteLog(LogFile.Trace, "添加用户:" + requestMessage.FromUserName); } else { Log.WriteLog(LogFile.Trace, "用户已存在:" + requestMessage.FromUserName); } } catch (System.Exception ex) { Log.WriteLog(LogFile.Error, "发生了一些不必要的错误:" + ex.ToString()); } responseMessage.Content = string.Format("【美天网络】统一帐号管理系统\r\n请输入命令编号或命令进行操作:\r\n1.【激活】\r\n2.【登录】"); return(responseMessage); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content = "";//"感谢亲的关注!首次关注,亲可以输入“我要红包”获得1-10元不等的关注红包哦!";//GetWelcomeInfo(); return(responseMessage); }
/// <summary> /// 订阅、关注事件 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); responseMessage.Content = GetWelcomeInfo(); return(responseMessage); }
//<?xml version="1.0" encoding="utf-8"?> //<xml> // <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName> // <FromUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></FromUserName> // <CreateTime>1357986928</CreateTime> // <MsgType><![CDATA[text]]></MsgType> // <Content><![CDATA[中文]]></Content> // <MsgId>5832509444155992350</MsgId> //</xml> /// <summary> /// 获取XDocument转换后的IRequestMessageBase实例。 /// 如果MsgType不存在,抛出UnknownRequestMsgTypeException异常 /// </summary> /// <returns></returns> public static IRequestMessageBase GetRequestEntity(XDocument doc) { RequestMessageBase requestMessage = null; RequestMsgType msgType; try { msgType = MsgTypeHelper.GetRequestMsgType(doc); switch (msgType) { case RequestMsgType.Text: requestMessage = new RequestMessageText(); break; case RequestMsgType.Location: requestMessage = new RequestMessageLocation(); break; case RequestMsgType.Image: requestMessage = new RequestMessageImage(); break; case RequestMsgType.Voice: requestMessage = new RequestMessageVoice(); break; case RequestMsgType.Video: requestMessage = new RequestMessageVideo(); break; case RequestMsgType.Link: requestMessage = new RequestMessageLink(); break; case RequestMsgType.ShortVideo: requestMessage = new RequestMessageShortVideo(); break; case RequestMsgType.Event: //判断Event类型 switch (doc.Root.Element("Event").Value.ToUpper()) { case "ENTER"://进入会话 requestMessage = new RequestMessageEvent_Enter(); break; case "LOCATION"://地理位置 requestMessage = new RequestMessageEvent_Location(); break; case "SUBSCRIBE"://订阅(关注) requestMessage = new RequestMessageEvent_Subscribe(); break; case "UNSUBSCRIBE"://取消订阅(关注) requestMessage = new RequestMessageEvent_Unsubscribe(); break; case "CLICK"://菜单点击 requestMessage = new RequestMessageEvent_Click(); break; case "SCAN"://二维码扫描 requestMessage = new RequestMessageEvent_Scan(); break; case "VIEW"://URL跳转 requestMessage = new RequestMessageEvent_View(); break; case "MASSSENDJOBFINISH": //事件推送群发 requestMessage = new RequestMessageEvent_MassSendJobFinish(); break; case "TEMPLATESENDJOBFINISH"://模板信息 requestMessage = new RequestMessageEvent_TemplateSendJobFinish(); break; case "SCANCODE_PUSH"://扫码推事件(scancode_push) requestMessage = new RequestMessageEvent_Scancode_Push(); break; case "SCANCODE_WAITMSG"://扫码推事件且弹出“消息接收中”提示框(scancode_waitmsg) requestMessage = new RequestMessageEvent_Scancode_Waitmsg(); break; default://其他意外类型(也可以选择抛出异常) requestMessage = new RequestMessageEventBase(); break; } break; default: throw new UnknownRequestMsgTypeException(string.Format("MsgType:{0} 在RequestMessageFactory中没有对应的处理程序!", msgType), new ArgumentOutOfRangeException());//为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常 } EntityHelper.FillEntityWithXml(requestMessage, doc); } catch (ArgumentException ex) { throw new WeixinException(string.Format("RequestMessage转换出错!可能是MsgType不存在!,XML:{0}", doc.ToString()), ex); } return requestMessage; }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { //TODO:订阅红包被注释了 //int apiid = wxcomm.getApiid(); ////------印美图接口 begin------ ////threeInterface.weipaiInterface wxcf = new threeInterface.weipaiInterface(); ////wxcf.weipaiSubscribe(requestMessage.FromUserName, apiid); ////------印美图接口 end------ //XjHongBao xjMgr = new XjHongBao(); //xjMgr.SubscribeHongBao(requestMessage.FromUserName, apiid); //return EventProcess(6, requestMessage); return null; }