JeffreySu / WeiXinMPSDK

微信全平台 .NET SDK, Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 8.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#.
https://weixin.senparc.com
Apache License 2.0
8.43k stars 4.35k forks source link

创建和获取自定义菜单不支持media_id和view_limited类型 #777

Closed zhoujs712 closed 7 years ago

zhoujs712 commented 7 years ago
问题描述

使用如下两种类型来创建自定义菜单或获取自定义菜单时出错 { "type": "media_id", "name": "图片", "media_id": "MEDIA_ID1" }, { "type": "view_limited", "name": "图文消息", "media_id": "MEDIA_ID2" }

微信官方文档 URL

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013

发现问题的模块
模块对应的.net版本
开发环境
缓存环境
JeffreySu commented 7 years ago

应该是没有添加对应的类型,我们会马上处理,谢谢!

zhoujs712 commented 7 years ago

src/Senparc.Weixin.MP/Senparc.Weixin.MP/CommonAPIs/Menu/CommonApi.Menu.Common.cs的修改部分应该是如下,同时应在rootButton中加入相似的判断

                else if (subSubButton.type.Equals("MEDIA_ID", StringComparison.OrdinalIgnoreCase))
                {
                    //下发消息(除文本消息)
                    subButton.sub_button.Add(new SingleMediaIdButton()
                    {
                        name = subSubButton.name,
                        key = subSubButton.key,
                        type = subSubButton.type
                    });
                }
                else if (subSubButton.type.Equals("VIEW_LIMITED", StringComparison.OrdinalIgnoreCase))
                {
                    //跳转图文消息URL
                    subButton.sub_button.Add(new SingleViewLimitedButton()
                    {
                        name = subSubButton.name,
                        key = subSubButton.key,
                        type = subSubButton.type
                    });
                }
JeffreySu commented 7 years ago

可以了,master分支,你看一下。Demo也更新了。

JeffreySu commented 7 years ago

@zhoujs712 测试结果怎么样?

zhoujs712 commented 7 years ago

使用Demo测试带有media_id和view_limited的获取菜单和创建菜单功能,全都成功。