• 1 方式一:不写代码,使用微信公众平台接口调试工具来创建菜单{ "button": [ { "name": "百度", "type": "view", "url": "...

    1 方式一:不写代码,使用微信公众平台接口调试工具来创建菜单

    {

        "button": [

            {

                "name": "百度", 

                "type": "view", 

                "url": "http://www.baidu.com"

            }, 

            {

                "name": "菜单", 

                "sub_button": [

                    {

                        "key": "text", 

                        "name": "回复图文", 

                        "type": "click"

                    }, 

                    {

                        "name": "百度", 

                        "type": "view", 

                        "url": "http://www.baidu.com"

                    }

                ]

            }, 

            {

                "key": "text", 

                "name": "回复图文", 

                "type": "click"

            }

        ]

    }

    2 方式二:写代码创建菜单

    ViewButton


    package com.iris.wechat.menu;
    /**
     * 视图型菜单事件
     * @author ifeng
     *
     */
    public class ViewButton {
    	
        private String type;
        private String name;
        private String url;
        
    	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 String getUrl() {
    		return url;
    	}
    	public void setUrl(String url) {
    		this.url = url;
    	}
      
    }
    

    ClickButton


    package com.iris.wechat.menu;
    
    public class ClickButton {
      private String type;
      private String name;
      private String key;
      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 String getKey() {
    	return key;
      }
      public void setKey(String key) {
    	this.key = key;
      }
        
    }
    


    CreateMenu

    package com.iris.wechat.menu;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    public class CreateMenu {
    	public static void main(String[] args){
    		
    	String accessToken = null;
    	 try {
    		accessToken = AccessToken.getAccessToken();	
    	} catch (Exception e) {
    		System.out.println("fail to get AccessToken");
    	}
    	
    	if (accessToken !=null ){
    		ClickButton cbt=new ClickButton();
            cbt.setKey("image");
            cbt.setName("回复图片1");
            cbt.setType("click");
             
             
            ViewButton vbt=new ViewButton();
            vbt.setUrl("http://irisfeng.natapp1.cc/WechatValidation/toSAP.action");
            vbt.setName("ToSAP");
            vbt.setType("view");
             
            JSONArray sub_button=new JSONArray();
            sub_button.put(cbt);
            sub_button.put(vbt);
             
             
            JSONObject buttonOne=new JSONObject();
            buttonOne.put("name", "菜单");
            buttonOne.put("sub_button", sub_button);
             
            JSONArray button=new JSONArray();
            button.put(vbt);
            button.put(buttonOne);
            button.put(cbt);
             
            JSONObject menujson=new JSONObject();
            menujson.put("button", button);
            System.out.println(menujson);
            
            String postURL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+accessToken;
            try {
    		  URL url = new URL(postURL);
    	      HttpURLConnection connection = (HttpURLConnection)url.openConnection();
    			
    	      connection.setRequestMethod("POST");
    	      connection.setDoOutput(true);
    	      connection.setDoInput(true);
    	      connection.connect();
    	
    	      OutputStream outputStream = connection.getOutputStream();
    	      outputStream.write(menujson.toString().getBytes("UTF-8"));
    	      outputStream.flush();
    	      outputStream.close();
    	
    	      InputStream inputStream = connection.getInputStream();
    	      int size =inputStream.available();
    	      byte[] bs =new byte[size];
    	      inputStream.read(bs);
    	      String message=new String(bs,"UTF-8");
    	
    	      System.out.println("message="+message);
    		} catch (MalformedURLException e) {
    					e.printStackTrace();
    		} catch (IOException e) {
    		
    			e.printStackTrace();
    		}
    
    	}
    	
    	}
    	
    	
    //	public static String getMenuStr() throws JSONException{
    //        JSONObject firstLevelMenu = JSONObject.fromObject("");//一级菜单
    //        JSONArray firstLevelMenuArray = new JSONArray();//一级菜单列表
    //
    //
    //        //一级菜单内容1
    //        JSONObject firstLevelMenuContext1 = new JSONObject();
    //        firstLevelMenuContext1.put("type", "click");
    //        firstLevelMenuContext1.put("name", "歌曲");
    //        firstLevelMenuContext1.put("key", "V1001_TODAY_MUSIC");
    //
    //        //一级菜单内容2
    //        JSONObject firstLevelMenuContext2 = new JSONObject();
    //        //一级菜单内容2的二级菜单列表
    //        JSONArray firstLevelMenuContext2Array = new JSONArray();
    //        //一级菜单内容2的二级菜单内容1
    //        JSONObject jsonObject1 = new JSONObject();
    //        jsonObject1.put("type", "click");
    //        jsonObject1.put("name", "歌曲");
    //        jsonObject1.put("key", "V1001_TODAY_MUSIC");
    //        //一级菜单内容2的二级菜单内容2
    //        JSONObject jsonObject2 = new JSONObject();
    //        jsonObject2.put("type", "view");
    //        jsonObject2.put("name", "视频");
    //        jsonObject2.put("url", "http://www.randzh.cn");
    //        firstLevelMenuContext2Array.put(jsonObject1);
    //        firstLevelMenuContext2Array.put(jsonObject2);
    //        firstLevelMenuContext2.put("name", "菜单");
    //        firstLevelMenuContext2.put("sub_button", firstLevelMenuContext2Array);
    //
    //        //一级菜单内容3
    //        JSONObject firstLevelMenuContext3 = new JSONObject();
    //        firstLevelMenuContext3.put("type", "click");
    //        firstLevelMenuContext3.put("name", "视频");
    //        firstLevelMenuContext3.put("key", "V1001_TODAY_MOVIE");
    //
    //
    //        firstLevelMenuArray.put(firstLevelMenuContext1);
    //        firstLevelMenuArray.put(firstLevelMenuContext2);
    //        firstLevelMenuArray.put(firstLevelMenuContext1);
    //
    //
    //        firstLevelMenu.put("button", firstLevelMenuArray);
    //       
    //        String str = firstLevelMenu.toString();
    //        System.out.println("JSON str="+str);
    //        return str;
    //    }
    //	
    //	public static void createCustomMenu() throws Exception{
    //        String custmMenuUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=";
    //
    //        //获取access_token
    //        String accessToken = AccessToken.getAccessToken();
    //        custmMenuUrl = custmMenuUrl + accessToken;
    //        System.out.println("===custmMenuUrl="+custmMenuUrl);
    //        
    //        URL url = new URL(custmMenuUrl);
    //        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    //
    //        connection.setRequestMethod("POST");
    //        connection.setDoOutput(true);
    //        connection.setDoInput(true);
    //        connection.connect();
    //
    //        OutputStream outputStream = connection.getOutputStream();
    //        outputStream.write(getMenuStr().getBytes("UTF-8"));
    //        outputStream.flush();
    //        outputStream.close();
    //
    //        InputStream inputStream = connection.getInputStream();
    //        int size =inputStream.available();
    //        byte[] bs =new byte[size];
    //        inputStream.read(bs);
    //        String message=new String(bs,"UTF-8");
    //
    //        System.out.println("message="+message);
    //}
    }
    

    展开全文
  • 微信端自定义菜单开发
  • 首先要了解,在做微信开发项目的时候,都是需要进行一个token验证的,微信服务端去验证你传来的token,校验通过之后,才能给你开放一些借口以便于你进行一些详细的读写操作,所以我们在做开发之前都是需要先通过微信...
  • 这时候就要程序员通过微信的接口手动去创建菜单微信创建菜单比较简单。 可以参照微信的官方文档点击打开链接 需要注意的是微信创建菜单有一定的缓存。这时候可以手动去查询创建的菜单。微信提供了调试的接口点击...
  • 微信公众号创建菜单报错40016 今天帮连锁处理公众号链接的时候,我通过接口将连锁的公众号菜单链接返回回来,然后处理一个跳转链接,本来想着是手到擒来的事,没想到突然给我抛出一个错误,打了我一个措手不及,但是...
  • 以下是微信公众平台对 添加自定义菜单 的文档说明:1、自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。 2、一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。 3、创建...
  • 文章转自 《微信自定义菜单中文乱码问题》 问题:微信自定义菜单开发者模式,菜单中文出现乱码例: $menu = array( 'button' => array( array( 'type'=>'view', 'name'=>'百度', 'url'=>'...
  • 先说解决办法:千万别被在线接口误导了,post提交的时候参数根本没有body这个k/v,直接放一个button和集合就可以了 ...//添加菜单一 arrayList.add(menu1); //添加菜单二 JSONObject jsonObject = new JSONObjec...
  • 大家可能经常看到一些微信公众号具有功能强大的自定义菜单,点击之后可以访问很多有用的功能。 这篇教程就教大家如何动手做一做。 这个教程最后实现的效果是:创建一个...文档里给了创建自定义菜单需要维护参数的H...
  • java版微信公众号开发之自定义菜单创建
  • 微信公众号创建菜单 2020-05-17 12:06:07
    在自己的服务器上搭建微信公众号: 也就是接口的一些调用而已类:使用说明: (1)选择合适的接口。 (2)系统会生成该接口的参数表,您可以直接在文本框内填入对应的参数值。(红色星号表示该字段必填) (3)点击...
  • 一、看公众号的文档可知有些接口调用可能要https请求,所以这里我们在util包中创建一个书信任管理器类package com.util;import java.security.cert.CertificateException; import java.security.cert.X509...
  • 微信开发创建自定义菜单 2017-04-10 14:12:11
    3、创建自定义菜单后,菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消...
  • 作者:陈惠,叩丁狼教育...菜单效果:打开开发文档,选择”自定义菜单”的”菜单创建接口”。注意: 1、自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。 2、一级菜单最多4个汉字,二级菜单最多...
  • 总结需求当微信公众号设置为开发者模式,想要自己创建和开发菜单的话,就需要自己调用微信创建菜单的接口来创建菜单了。创建菜单之后,如果需要迫切的看到效果,有时候需要取消关注-从新关注才能够看到的哦(缓存问题...
  • 微信5.0发布 2013年8月5日,伴随着微信5.0 iPhone版的发布,公众平台也进行了重要的更新,主要包括: 1)运营主体为组织,可选择成为服务号或者订阅号; 2)服务号可以申请自定义菜单; 3)使用QQ登录的公众号,...
  • 微信菜单创建和响应
  • 10万+IT人都在关注,史上最全面的微信开发实战教程:包含公众号,小程序,微信支付等开发案例 欢迎关注笔者个人博客:http://blogs.chenyunkeji.com/ 首先,直接上图,看效果,如下,有三个根菜单,每个菜单上有...
  • 在上篇文章实现微信扫码获取带指定参数时,微信公众号后台启用了服务器配置,导致之前设置好的微信自定义菜单失效。 开启了服务器配置,就无法用之前的方式在微信公众平台配置自定义菜单 ...2.组织创建菜单内容。微
  • 创建自定义菜单,实现菜单事件。 首先获取Access_Token 接口: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 然后配置菜单的事件,caidan.php <...
1 2 3 4 5 ... 20
收藏数 15,143
精华内容 6,057