子菜单集合

  好了,还有另外一个问题,子菜单也就是属性sub_button是可有可无的东西,有的话,需要指定Name属性,并添加它的sub_button集合对象就可以了,那么我们在增加一个构造子菜单的对象信息的构造函数。

  ///

  /// 参数化构造函数,用于构造子菜单

  ///

  /// 按钮名称

  /// 子菜单集合

  public MenuInfo(string name, IEnumerable sub_button)

  {

  this.name = name;

  this.sub_button = new List();

  this.sub_button.AddRange(sub_button);

  }

  由于只指定Name和sub_button的属性内容,其他内容为null的话,自然构造出来的Json就没有包含它们,非常完美!

  为了获取菜单的信息,我们还需要定义两个实体对象,如下所示。

  ///

  /// 菜单的Json字符串对象

  ///

  public class MenuJson

  {

  public List button { get; set; }

  public MenuJson()

  {

  button = new List();

  }

  }

  ///

  /// 菜单列表的Json对象

  ///

  public class MenuListJson

  {

  public MenuJson menu { get; set; }

  }

  3、菜单管理操作的接口实现

  我们从微信的定义里面,可以看到,我们通过API可以获取菜单信息、创建菜单、删除菜单,那么我们来定义它们的接口如下。

  ///

  /// 菜单的相关操作

  ///

  public interface IMenuApi

  {

  ///

  /// 获取菜单数据

  ///

  /// 调用接口凭证

  ///

  MenuJson GetMenu(string accessToken);

  ///

  /// 创建菜单

  ///

  /// 调用接口凭证

  /// 菜单对象

  ///

  CommonResult CreateMenu(string accessToken, MenuJson menuJson);

  ///

  /// 删除菜单

  ///

  /// 调用接口凭证

  ///

  CommonResult DeleteMenu(string accessToken);

  }

  具体的获取菜单信息的实现如下。

  ///

  /// 获取菜单数据

  ///

  /// 调用接口凭证

  ///

  public MenuJson GetMenu(string accessToken)

  {

  MenuJson menu = null;

  var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/get?access_token={0}", accessToken);

  MenuListJson list = JsonHelper.ConvertJson(url);

  if (list != null)

  {

  menu = list.menu;

  }

  return menu;

  }

  这里就是把返回的Json数据,统一转换为我们需要的实体信息了,一步到位。

  调用代码如下所示。

  private void btnGetMenuJson_Click(object sender, EventArgs e)

  {

  IMenuApi menuBLL = new MenuApi();

  MenuJson menu = menuBLL.GetMenu(token);

  if (menu != null)

  {

  Console.WriteLine(menu.ToJson());

  }

  }

  创建和删除菜单对象的操作实现如下所示。

  ///

  /// 创建菜单

  ///

  /// 调用接口凭证

  /// 菜单对象

  ///

  public CommonResult CreateMenu(string accessToken, MenuJson menuJson)

  {

  var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}", accessToken);

  string postData = menuJson.ToJson();

  return Helper.GetExecuteResult(url, postData);

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值