本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4。.NET4.5(master) / .NET4.0两个分支都已同步更新。
由于个性化菜单变化比较大,所以对整个菜单接口进行了目前为止最大面积的重构(可以向下兼容)。
相比之前的自定义菜单,目前整个菜单相关功能针对文件结构进行了全面的整理,:
菜单接口已经全部归入CommonAPIs/Menu目录下,CommonApi部分类下面再分出3个类文件:
菜单接口文件
其中自定义菜单接口已经确保向下兼容,以前如果有已经开发自定义菜单功能的项目,可以放心升级。
个性化菜单类内容如下:
/*---------------------------------------------------------------- Copyright (C) 2015 Senparc 文件名:CommonApi.Menu.Conditional 文件功能描述:个性化自定义菜单接口 创建标识:Senparc - 20151222 修改标识:Senparc - 20151222 修改描述:v13.5.1 添加个性化菜单接口----------------------------------------------------------------*//* API: */using Senparc.Weixin.Entities;using Senparc.Weixin.Helpers;using Senparc.Weixin.MP.Entities;using Senparc.Weixin.MP.Entities.Menu;namespace Senparc.Weixin.MP.CommonAPIs{ public partial class CommonApi { ////// 创建个新华菜单 /// /// ///public static WxJsonResult DeleteMenuConditional(string accessTokenOrAppId, string menuId) { return ApiHandlerWapper.TryCommonApi(accessToken => { var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token={0}", accessToken); var data = new { menuId = menuId }; return CommonJsonSend.Send(accessToken, url, data, CommonJsonSendType.POST); }, accessTokenOrAppId); } /* 使用普通自定义菜单删除接口可以删除所有自定义菜单(包括默认菜单和全部个性化菜单),请见自定义菜单删除接口的说明。 */ }}
菜单公共方法中,GetButtonGroup()方法添加了一个参数:buttonGroup,用于指定菜单按钮列表类型(属于个性化菜单还是自定义菜单)。
有关实体类的变化都体现在Entities/Menu目录下,新建了IButtonGroupBase接口以及ButtonGroupBase基类。ButtonGroup(自定义菜单)和ConditionalButtonGroup(个性化菜单)按钮都继承自ButtonGroupBase。
Entities/Menu/Buttons/目录下的所有按钮类型是通用的。
重新整理的返回类型都在Entities/JsonResult/Menu/目录下:
更多微信公众平台开发:个性化菜单接口说明相关文章请关注PHP中文网!