ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
发布时间:2016-11-01 04:17:01 所属栏目:教程 来源:站长网
导读:最近代码出现分享问题,360云盘宣布混不下去,所有分享的连接都失效了,最近有时间会把代码转移到百度云,再把文章的代码补回去 前言 本节主要是关注者(即用户)和用户组的管理,微信公众号提供了用户和用户组的管理,我们可以在微信公众号官方里面进行操作,
最近代码出现分享问题,360云盘宣布混不下去,所有分享的连接都失效了,最近有时间会把代码转移到百度云,再把文章的代码补回去前言
实现一、关注与订阅事件看到我们之前的消息处理类 我们需要扩展一个事件类,这个类与之前消息处理类是一样的分部类,同样来自Senpars微信的SDK ![]() /*---------------------------------------------------------------- Copyright (C) 2016 Senparc 文件名:CustomMessageHandler_Events.cs 文件功能描述:自定义MessageHandler 创建标识:Senparc - 20150312 ----------------------------------------------------------------*/ using System; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using System.Web; using Senparc.Weixin.MP.Agent; using Senparc.Weixin.Context; using Senparc.Weixin.MP.Entities; using Senparc.Weixin.MP.Helpers; using Senparc.Weixin.MP.MessageHandlers; using Senparc.Weixin.MP; using Apps.WC.DAL; using Apps.WC.IDAL; using System.Collections.Generic; using Apps.Models; using Apps.WC.IBLL; using Apps.WC.BLL; using Apps.Models.WC; using Apps.Models.Enum; using Apps.Common; using Senparc.Weixin.MP.AdvancedAPIs; using Senparc.Weixin.MP.AdvancedAPIs.User; namespace Apps.Web.Areas.WC.Core { /// <summary> /// 自定义MessageHandler /// </summary> public partial class CustomMessageHandler { public override IResponseMessageBase OnTextOrEventRequest(RequestMessageText requestMessage) { // 预处理文字或事件类型请求。 // 这个请求是一个比较特殊的请求,通常用于统一处理来自文字或菜单按钮的同一个执行逻辑, // 会在执行OnTextRequest或OnEventRequest之前触发,具有以下一些特征: // 1、如果返回null,则继续执行OnTextRequest或OnEventRequest // 2、如果返回不为null,则终止执行OnTextRequest或OnEventRequest,返回最终ResponseMessage // 3、如果是事件,则会将RequestMessageEvent自动转为RequestMessageText类型,其中RequestMessageText.Content就是RequestMessageEvent.EventKey if (requestMessage.Content == "OneClick") { var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); strongResponseMessage.Content = "您点击了底部按钮。rn为了测试微信软件换行bug的应对措施,这里做了一个——rn换行"; return strongResponseMessage; } return null;//返回null,则继续执行OnTextRequest或OnEventRequest } public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage) { IResponseMessageBase reponseMessage = null; ////菜单点击,需要跟创建菜单时的Key匹配 //switch (requestMessage.EventKey) //{ // case "OneClick": // { // //这个过程实际已经在OnTextOrEventRequest中完成,这里不会执行到。 // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Content = "您点击了底部按钮。rn为了测试微信软件换行bug的应对措施,这里做了一个——rn换行"; // } // break; // case "SubClickRoot_Text": // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Content = "您点击了子菜单按钮。"; // } // break; // case "SubClickRoot_News": // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageNews>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Articles.Add(new Article() // { // Title = "您点击了子菜单图文按钮", // Description = "您点击了子菜单图文按钮,这是一条图文信息。", // PicUrl = "http://sdk.weixin.senparc.com/Images/qrcode.jpg", // Url = "http://sdk.weixin.senparc.com" // }); // } // break; // case "SubClickRoot_Music": // { // //上传缩略图 // var accessToken = Senparc.Weixin.MP.Containers.AccessTokenContainer.TryGetAccessToken(appId, appSecret); // var uploadResult = Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadTemporaryMedia(accessToken, UploadMediaFileType.thumb, // Server.GetMapPath("~/Images/Logo.jpg")); // //设置音乐信息 // var strongResponseMessage = CreateResponseMessage<ResponseMessageMusic>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Music.Title = "天籁之音"; // strongResponseMessage.Music.Description = "真的是天籁之音"; // strongResponseMessage.Music.MusicUrl = "http://sdk.weixin.senparc.com/Content/music1.mp3"; // strongResponseMessage.Music.HQMusicUrl = "http://sdk.weixin.senparc.com/Content/music1.mp3"; // strongResponseMessage.Music.ThumbMediaId = uploadResult.thumb_media_id; // } // break; // case "SubClickRoot_Image": // { // //上传图片 // var accessToken = Senparc.Weixin.MP.Containers.AccessTokenContainer.TryGetAccessToken(appId, appSecret); // var uploadResult = Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadTemporaryMedia(accessToken, UploadMediaFileType.image, // Server.GetMapPath("~/Images/Logo.jpg")); // //设置图片信息 // var strongResponseMessage = CreateResponseMessage<ResponseMessageImage>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Image.MediaId = uploadResult.media_id; // } // break; // case "SubClickRoot_Agent"://代理消息 // { // //获取返回的XML // DateTime dt1 = DateTime.Now; // reponseMessage = MessageAgent.RequestResponseMessage(this, agentUrl, agentToken, RequestDocument.ToString()); // //上面的方法也可以使用扩展方法:this.RequestResponseMessage(this,agentUrl, agentToken, RequestDocument.ToString()); // DateTime dt2 = DateTime.Now; // if (reponseMessage is ResponseMessageNews) // { // (reponseMessage as ResponseMessageNews) // .Articles[0] // .Description += string.Format("rnrn代理过程总耗时:{0}毫秒", (dt2 - dt1).Milliseconds); // } // } // break; // case "Member"://托管代理会员信息 // { // //原始方法为:MessageAgent.RequestXml(this,agentUrl, agentToken, RequestDocument.ToString());//获取返回的XML // reponseMessage = this.RequestResponseMessage(agentUrl, agentToken, RequestDocument.ToString()); // } // break; // case "OAuth"://OAuth授权测试 // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageNews>(); // strongResponseMessage.Articles.Add(new Article() // { // Title = "OAuth2.0测试", // Description = "点击【查看全文】进入授权页面。rn注意:此页面仅供测试(是专门的一个临时测试账号的授权,并非Senparc.Weixin.MP SDK官方账号,所以如果授权后出现错误页面数正常情况),测试号随时可能过期。请将此DEMO部署到您自己的服务器上,并使用自己的appid和secret。", // Url = "http://sdk.weixin.senparc.com/oauth2", // PicUrl = "http://sdk.weixin.senparc.com/Images/qrcode.jpg" // }); // reponseMessage = strongResponseMessage; // } // break; // case "Description": // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // strongResponseMessage.Content = "GetWelcomeInfo"; // reponseMessage = strongResponseMessage; // } // break; // case "SubClickRoot_PicPhotoOrAlbum": // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Content = "您点击了【微信拍照】按钮。系统将会弹出拍照或者相册发图。"; // } // break; // case "SubClickRoot_ScancodePush": // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Content = "您点击了【微信扫码】按钮。"; // } // break; // case "ConditionalMenu_Male": // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:男。"; // } // break; // case "ConditionalMenu_Femle": // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // reponseMessage = strongResponseMessage; // strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:女。"; // } // break; // default: // { // var strongResponseMessage = CreateResponseMessage<ResponseMessageText>(); // strongResponseMessage.Content = "您点击了按钮,EventKey:" + requestMessage.EventKey; // reponseMessage = strongResponseMessage; // } // break; / |