前言

在进行微信公众号业务开发的时候,微信公众号的自定义菜单是非常重要的一环,该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,争取看过的小伙伴都能够实现,创建公众号菜单和代码同步公众号菜单功能本文章在每一步都有记录,力争理解的同时各位小伙伴也能够实现功能

说明:因为开通微信服务号是需要营业执照和300元的,而个人号有些功能又没有,所以是比较不方便的,但是微信官方很贴心的为我们准备了测试公众号,所以我们在测试开发阶段均可以使用测试公众号来调试。

文章目录

  • 前言
  • 1、通过微信测试工具实现创建菜单
  • 2、通过Java代码实现同步微信公众号菜单
  • 总结

1、通过微信测试工具实现创建菜单

1、访问微信测试公众号地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

2、用微信扫码登录
3、在这里我们可以看到我们的测试号的APPId和和密钥(这个很重要)

相信对接过第三方接口的小伙伴并不陌生,几乎所有的第三方接口都有自己的ID和密钥。

4、使用微信公众号接口测试工具:https://mp.weixin.qq.com/debug/


第一步:使用appId和密钥获取:access_token,然后复制保存下来,这一步很关键

第二步:使用刚刚的accessToken请求创建菜单的接口


我使用的模板如下:

{"button": [{"type": "view", "name": "公司简介", "url": "http://kaifa.yuantiaokj.com/static/comProfile/"}, {"name": "水务办理", "sub_button": [{"type": "view", "name": "业务申报", "url": "http://kaifa.xxx.com/static/wentifankui?activeIndex=0"}, {"type": "view", "name": "通知公告", "url": "http://kaifa.xxx.com/static/gonggao"}]}, {"name": "在线缴费", "sub_button": [{"type": "view", "name": "在线缴费", "url": "http://kaifa.xxxx.com/static?companyId=2"}, {"type": "view", "name": "缴费指南", "url": "http://kaifa.xxxx.com/static/jiaofeizhinan?activeIndex=0"}]}]
}

此时菜单创建成功,我们可以使用微信关注自己的测试公众号,还是在微信测试公众号这个链接:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

用PC端或者手机端查看,发现菜单创建成功啦~

2、通过Java代码实现同步微信公众号菜单

1、引入依赖

    <dependencies><dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-mp</artifactId><version>4.1.0</version></dependency></dependencies>

2、在配置文件中配置微信测试公众号的appId和密钥

#自己测试账号的AppID、密钥,可以用来接受消息
wechat.mpAppId: wxe789s8175911
wechat.mpAppSecret: c2c4f54qdcod665852w6270d

3、创建微信配置类

@Component
public class WeChatMpConfig {@Autowiredprivate ConstantPropertiesUtil constantPropertiesUtil;@Beanpublic WxMpService wxMpService(){WxMpService wxMpService = new WxMpServiceImpl();wxMpService.setWxMpConfigStorage(wxMpConfigStorage());return wxMpService;}@Beanpublic WxMpConfigStorage wxMpConfigStorage(){WxMpDefaultConfigImpl wxMpConfigStorage = new WxMpDefaultConfigImpl();wxMpConfigStorage.setAppId(ConstantPropertiesUtil.ACCESS_KEY_ID);wxMpConfigStorage.setSecret(ConstantPropertiesUtil.ACCESS_KEY_SECRET);return wxMpConfigStorage;}
}

4、编写Service接口

public interface MenuService extends IService<Menu> {//同步微信公众号单void syncMenu();
}

5、编写ServiceImpl实现类

    @Autowiredprivate WxMpService wxMpService;@Overridepublic void syncMenu() {List<MenuVo> menuVoList = this.findMenuInfo();//菜单JSONArray buttonList = new JSONArray();for(MenuVo oneMenuVo : menuVoList) {JSONObject one = new JSONObject();one.put("name", oneMenuVo.getName());JSONArray subButton = new JSONArray();for(MenuVo twoMenuVo : oneMenuVo.getChildren()) {JSONObject view = new JSONObject();view.put("type", twoMenuVo.getType());if(twoMenuVo.getType().equals("view")) {view.put("name", twoMenuVo.getName());view.put("url", "http://ggkt2.vipgz1.91tunnel.com/#"+twoMenuVo.getUrl());} else {view.put("name", twoMenuVo.getName());view.put("key", twoMenuVo.getMeunKey());}subButton.add(view);}one.put("sub_button", subButton);buttonList.add(one);}//菜单JSONObject button = new JSONObject();button.put("button", buttonList);this.wxMpService.getMenuService().menuCreate(button.toJSONString());}

6、Controller实现

@ApiOperation(value = "同步菜单")
@GetMapping("syncMenu")
public Result createMenu() throws WxErrorException {menuService.syncMenu();return Result.ok(null);
}

7、测试,因为我们使用的是get请求,所以可以直接使用浏览器访问接口测试:localhost:8080/api/wechat/menu/syncMenu


总结

怎么样,先用测试工具走一遍流程,再使用代码实现功能,看完是不是觉得特别简单呢~

【微信开发第一章】SpringBoot实现微信公众号创建菜单,同步菜单功能:https://blog.csdn.net/weixin_47316183/article/details/127821095?spm=1001.2014.3001.5502

【微信开发第二章】SpringBoot实现微信公众号普通消息和模板消息回复:https://blog.csdn.net/weixin_47316183/article/details/127821653?spm=1001.2014.3001.5502

【微信开发第三章】SpringBoot实现微信授权登录
https://blog.csdn.net/weixin_47316183/article/details/127833802?spm=1001.2014.3001.5502

【微信开发第四章】SpringBoot实现微信H5支付
https://blog.csdn.net/weixin_47316183/article/details/127949620?spm=1001.2014.3001.5502

【微信开发第五章】SpringBoot实现微信分享
https://blog.csdn.net/weixin_47316183/article/details/127950090?spm=1001.2014.3001.5502

【微信开发第一章】SpringBoot实现微信公众号创建菜单,同步菜单功能相关推荐

  1. easywechat微信开发系列(1):公众号网页授权

    准备工作: 1.已认证的服务号(apppid.appsecret.token.aes_key) 2.安全域名 3.已经用composer安装好easywechat 1.config/app.php 的 ...

  2. 【微信开发第二章】SpringBoot实现微信公众号普通消息和模板消息回复

    前言 在进行微信公众号业务开发的时候,微信公众号的消息回复是非常重要的一环,而微信公众号消息回复分为:普通消息自动回复和模板消息回复.该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,并且每 ...

  3. 微信开发api “此图片来自微信公众平台未经允许不可引用”的解决方案

    在使用微信开发api接口接管后, 获取公众号的素材发现图片显示"此图片来自微信公众平台未经允许不可引用" 问题: 方案一(推荐): 在html中的<head>里面添加& ...

  4. SpringBoot开发微信公众号_回复文本信息功能

    公众号开发须知 很多人在刚刚开始接触公众号开发的时候,对公众号后台的服务器设置很迷茫,不知道怎么配置.我简单的给大家介绍一下. 1.如果你是想做信息回复功能的,就是你给公众号发相关的关键字,公众号直接 ...

  5. 微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证

    微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证  技术qq交流群:JavaDream:251572072 ------------------------- ...

  6. 微信公众号开发 - 配置表设计以及接入公众号接口开发

    微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...

  7. 微信公众号报修系统常见通用功能开发

    微信公众号报修系统常见通用功能开发 51报修系统是一款基于微信的用户报修.维修师傅接单.公司进行管理的一站式维修服务平台,实现报修.派单.接单.支付.评价.回访等功能.涵盖了各类生活维修服务,包括水电 ...

  8. 微信开发本地调试工具(模拟微信客户端)

    微信开发本地调试工具(模拟微信客户端) 开源免费微信管家系统(java)源码下载 微信部署需要依靠80端口,如何快速有效的调试本地微信开发程序, 捷微团队(jeewx-java微信开源系统),采用微信 ...

  9. 微信公众号创建菜单报错40016

    微信公众号创建菜单报错40016 今天帮连锁处理公众号链接的时候,我通过接口将连锁的公众号菜单链接返回回来,然后处理一个跳转链接,本来想着是手到擒来的事,没想到突然给我抛出一个错误,打了我一个措手不及 ...

最新文章

  1. linux清除邮件队列
  2. 使用xshell远程连接Linux
  3. vscode markdown-all-in-one 源码编译成vsix
  4. 字节跳动python面试_字节跳动的面试感受
  5. 订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...
  6. MATLAB GUI如何创建Callback函数
  7. 政企边缘安全,如何助您提升企业的“免疫力“?
  8. dx 游戏 hook 画面截取 鼠标_关于DX-30E 个人简评
  9. bigemap 百度教程
  10. Gilbert Strang-线性代数总结
  11. Unity相机设置CullingMask
  12. C++ —— 宏对于简化类接口的奇技淫巧
  13. M个苹果放到N个相同盘子和N个不同盘子的解法
  14. 获益匪浅:在北京每月能白捡一万元
  15. 塔望 用食品改变世界
  16. matlab对遥感影像投影转换,在matlab中实现遥感影像和shp文件的结合显示
  17. 20不努力,30做助理(转载)
  18. 基于Wallpaper Engine的html插件罗盘时钟实现及简易桌面替换
  19. MIT-BIH-ECG使用
  20. 【厚积薄发系列】读书笔记4—《伙伴教练:转化团队高效能的关键力量》小记

热门文章

  1. USACO section2.4 Cow Tours题解代码
  2. Thymeleaf设置固定值属性
  3. 高铁的速度 华为的服务
  4. CSS+SVG实现简单的点赞效果
  5. token 微信access 过期_.Net微信开发之如何解决access_token过期问题
  6. 2012服务器系统显示这台电脑,两台windows server 2012 R2 服务器 故障:计算机已经从检测错误后重新启动。请问如何解决?...
  7. 看京东如何把Intel RealSense技术用在物流上
  8. 猫咪藏在哪个房间python作业_猫咪生气躲进房间,众人找到后,猫咪一脸疑问:听说你们在找我...
  9. ps知识点2-吸管、修复、画笔、仿章
  10. RLS算法-公式初探