3-1_自定义菜单(上)

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

/Weixin/src/com/imooc/menu/Button.java

package com.imooc.menu;

public class Button {
	private String type;
	private String name;
	private Button[] sub_button;
	
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Button[] getSub_button() {
		return sub_button;
	}
	public void setSub_button(Button[] sub_button) {
		this.sub_button = sub_button;
	}
	
}

/Weixin/src/com/imooc/menu/ClickButton.java

package com.imooc.menu;

public class ClickButton extends Button{
	private String key;

	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}
	
	
}

/Weixin/src/com/imooc/menu/ViewButton.java

package com.imooc.menu;

public class ViewButton extends Button {
	private String url;

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}
	
	
}

/Weixin/src/com/imooc/menu/Menu.java

package com.imooc.menu;

public class Menu {
	private Button[] button;

	public Button[] getButton() {
		return button;
	}

	public void setButton(Button[] button) {
		this.button = button;
	}
	
	
}

下面根据实体对象,组装菜单

在 /Weixin/src/com/imooc/util/WeixinUtil.java 里添加一个方法:

	/**
	 * 组装 菜单
	 * @return
	 */
	public static Menu initMenu(){
		Menu menu = new Menu();
		ClickButton button11 = new ClickButton();
		button11.setName("click菜单");
		button11.setType("click");
		button11.setKey("11");
		
		ViewButton button21 = new ViewButton();
		button21.setName("view菜单");
		button21.setType("view");
		button21.setUrl("https://www.imooc.com");
		
		ClickButton button31 = new ClickButton();
		button31.setName("扫码");
		button31.setType("scancode_push");
		button31.setKey("31");
		
		ClickButton button32 = new ClickButton();
		button32.setName("地理位置");
		button32.setType("location_select");
		button32.setKey("32");
		
		Button button = new Button();
		button.setName("菜单");
		button.setSub_button(new Button[]{button31,button32});
		
		menu.setButton(new Button[]{button11,button21,button});
		return menu;
	}

把地址复制过来:

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

在 /Weixin/src/com/imooc/util/WeixinUtil.java 上面添加一个常量

	private static final String CREATE_MENU_URL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";

然后再添加一个方法:

	public static int createMenu(String token,String menu){
		int result = 0;
		String url = CREATE_MENU_URL.replace("ACCESS_TOKEN", token);
		JSONObject jsonObject = doPostStr(url, menu);
		if(jsonObject != null){
			result = jsonObject.getInt("errcode");
		}
		return result;
	}

最后测试:/Weixin/src/com/imooc/test/WeixinTest.java

package com.imooc.test;

import net.sf.json.JSONObject;

import com.imooc.po.AccessToken;
import com.imooc.util.WeixinUtil;

public class WeixinTest {

	public static void main(String[] args) {
		try {
			AccessToken token = WeixinUtil.getAccessToken();
			System.out.println("票据:"+token.getToken());
			System.out.println("有效时间:"+token.getExpiresIn());
		
//			String path = "G:/imooc.jpg";
//			String mediaId = WeixinUtil.upload(path, token.getToken(), "thumb");
//			System.out.println(mediaId);
			
			String menu = JSONObject.fromObject(WeixinUtil.initMenu()).toString();
			int result = WeixinUtil.createMenu(token.getToken(), menu);
			if(result == 0){
				System.out.println("菜单创建成果");
			}else{
				System.out.println("错误码:"+result);
			}
		
		}  catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

报错:48001

我就把

写到,项目里就可以了

/Weixin/src/com/imooc/util/WeixinUtil.java

import com.imooc.menu.Menu;
import com.imooc.menu.ViewButton;
import com.imooc.po.AccessToken;

import net.sf.json.JSONObject;

public class WeixinUtil {

	//private static final String APPID = "wx3041db7fcb232fd7";
	//private static final String APPSECRET = "b2e7836bb3362339bd168d66d436cb7a";
	//测试账号
	private static final String APPID = "wxa2021f7d0c2259f9";
	private static final String APPSECRET = "be070e2d7ee644aaa845f81f2cd847b2";

猜你喜欢

转载自blog.csdn.net/huanglianggu/article/details/81712848
今日推荐