前不久微信上線了個性化菜單接口,Senparc.Weixin SDK也已經同步更新。
本次更新更新Senparc.Weixin.MP版本到v13.5.2,依賴Senparc.Weixin版本4.5.4。.NET4.5(master) / .NET4.0兩個分支都已同步更新。
由于個性化菜單變化比較大,是以對整個菜單接口進行了目前為止最大面積的重構(可以向下相容)。

菜單接口已經全部歸入CommonAPIs/Menu目錄下,CommonApi部分類下面再分出3個類檔案:
檔案名
說明
CommonApi.Menu.Common.cs
菜單公共方法
CommonApi.Menu.Conditional.cs
個性化菜單
CommonApi.Menu.Custom.cs
普通自定義菜單
菜單接口檔案
其中自定義菜單接口已經確定向下相容,以前如果有已經開發自定義菜單功能的項目,可以放心更新。
個性化菜單類内容如下:
View Code
菜單公共方法中,GetButtonGroup()方法添加了一個參數:buttonGroup,用于指定菜單按鈕清單類型(屬于個性化菜單還是自定義菜單)。
有關實體類的變化都展現在Entities/Menu目錄下,建立了IButtonGroupBase接口以及ButtonGroupBase基類。ButtonGroup(自定義菜單)和ConditionalButtonGroup(個性化菜單)按鈕都繼承自ButtonGroupBase。
Entities/Menu/Buttons/目錄下的所有按鈕類型是通用的。
重新整理的傳回類型都在Entities/JsonResult/Menu/目錄下:
自定義菜單和個性化菜單的菜單添加、删除接口是不同的,使用的時候需要調用各自不同的接口。
如果使用個性化菜單,MenuMatchRule中的規則必須至少填寫一個。
對于使用了個性化菜單和不使用,擷取菜單時傳回的資料是不同的(前者包含後者),是以SDK針對這兩種情況隻提供了同一個實體:GetMenuResult(對應的接收消息實體為GetMenuResultFull)。有關個新華菜單的資訊(清單)可以直接從GetMenuResult.conditionalmenu讀取,如果為null或者清單為空,則表示沒有個性化菜單。
源代碼中提供了一個簡易的可視化編輯工具,同時可以檢視得到的菜單JSON資料格式(顯示的是操作的實體轉換成的JSON,非原始JSON)。
<a href="http://www.cnblogs.com/szw/archive/2013/05/20/3089479.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(一):微信公衆平台注冊</a>
<a href="http://www.cnblogs.com/szw/archive/2013/05/27/3100713.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(二):成為開發者</a>
<a href="http://www.cnblogs.com/szw/p/3202857.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(三):微信公衆平台開發驗證</a>
<a href="http://www.cnblogs.com/szw/p/3202968.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(四):Hello World</a>
<a href="http://www.cnblogs.com/szw/p/3414732.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(五):使用Senparc.Weixin.MP SDK</a>
<a href="http://www.cnblogs.com/szw/p/3414862.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(六):了解MessageHandler</a>
<a href="http://www.cnblogs.com/szw/p/3414887.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(七):解決使用者上下文(Session)問題</a>
<a href="http://www.cnblogs.com/szw/p/3750381.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(八):通用接口說明</a>
<a href="http://www.cnblogs.com/szw/p/3750517.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(九):自定義菜單接口說明</a>
<a href="http://www.cnblogs.com/szw/p/3764248.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十):多客服接口說明</a>
<a href="http://www.cnblogs.com/szw/p/3764267.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十一):進階接口說明</a>
<a href="http://www.cnblogs.com/szw/p/3764275.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十二):OAuth2.0說明</a>
<a href="http://www.cnblogs.com/szw/p/4138442.html" target="_blank">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十三):地圖相關接口說明</a>
<a href="http://www.cnblogs.com/szw/p/4138516.html" target="_blank">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十四):請求消息去重</a>
<a href="http://www.cnblogs.com/szw/p/4140069.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十五):消息加密</a>
<a href="http://www.cnblogs.com/szw/p/4624149.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十六):AccessToken自動管理機制</a>
<a href="http://www.cnblogs.com/szw/p/weixin-conditional-menu.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十七):個性化菜單接口說明</a>
<a href="http://www.cnblogs.com/szw/p/weixin-sdk-request-proxy.html">Senparc.Weixin.MP SDK 微信公衆平台開發教程(十八):Web代理功能</a>
QQ:498977166
<a href="http://szw.cnblogs.com/">http://szw.cnblogs.com/</a>
研究、探讨.NET開發
轉載請注明出處和作者,謝謝!
<a href="https://book.weixin.senparc.com/book/link?code=cnblogs-sign" target="_blank"></a>
<a href="https://book.weixin.senparc.com/book/link?code=cnblogs-sign" target="_blank"> </a>