【微信开发第一章】SpringBoot实现微信公众号创建菜单,同步菜单功能
前言
在进行微信公众号业务开发的时候,微信公众号的自定义菜单是非常重要的一环,该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,争取看过的小伙伴都能够实现,创建公众号菜单和代码同步公众号菜单功能。本文章在每一步都有记录,力争理解的同时各位小伙伴也能够实现功能。
说明:因为开通微信服务号是需要营业执照和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实现微信公众号创建菜单,同步菜单功能相关推荐
- easywechat微信开发系列(1):公众号网页授权
准备工作: 1.已认证的服务号(apppid.appsecret.token.aes_key) 2.安全域名 3.已经用composer安装好easywechat 1.config/app.php 的 ...
- 【微信开发第二章】SpringBoot实现微信公众号普通消息和模板消息回复
前言 在进行微信公众号业务开发的时候,微信公众号的消息回复是非常重要的一环,而微信公众号消息回复分为:普通消息自动回复和模板消息回复.该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,并且每 ...
- 微信开发api “此图片来自微信公众平台未经允许不可引用”的解决方案
在使用微信开发api接口接管后, 获取公众号的素材发现图片显示"此图片来自微信公众平台未经允许不可引用" 问题: 方案一(推荐): 在html中的<head>里面添加& ...
- SpringBoot开发微信公众号_回复文本信息功能
公众号开发须知 很多人在刚刚开始接触公众号开发的时候,对公众号后台的服务器设置很迷茫,不知道怎么配置.我简单的给大家介绍一下. 1.如果你是想做信息回复功能的,就是你给公众号发相关的关键字,公众号直接 ...
- 微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证
微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证 技术qq交流群:JavaDream:251572072 ------------------------- ...
- 微信公众号开发 - 配置表设计以及接入公众号接口开发
微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...
- 微信公众号报修系统常见通用功能开发
微信公众号报修系统常见通用功能开发 51报修系统是一款基于微信的用户报修.维修师傅接单.公司进行管理的一站式维修服务平台,实现报修.派单.接单.支付.评价.回访等功能.涵盖了各类生活维修服务,包括水电 ...
- 微信开发本地调试工具(模拟微信客户端)
微信开发本地调试工具(模拟微信客户端) 开源免费微信管家系统(java)源码下载 微信部署需要依靠80端口,如何快速有效的调试本地微信开发程序, 捷微团队(jeewx-java微信开源系统),采用微信 ...
- 微信公众号创建菜单报错40016
微信公众号创建菜单报错40016 今天帮连锁处理公众号链接的时候,我通过接口将连锁的公众号菜单链接返回回来,然后处理一个跳转链接,本来想着是手到擒来的事,没想到突然给我抛出一个错误,打了我一个措手不及 ...
最新文章
- linux清除邮件队列
- 使用xshell远程连接Linux
- vscode markdown-all-in-one 源码编译成vsix
- 字节跳动python面试_字节跳动的面试感受
- 订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...
- MATLAB GUI如何创建Callback函数
- 政企边缘安全,如何助您提升企业的“免疫力“?
- dx 游戏 hook 画面截取 鼠标_关于DX-30E 个人简评
- bigemap 百度教程
- Gilbert Strang-线性代数总结
- Unity相机设置CullingMask
- C++ —— 宏对于简化类接口的奇技淫巧
- M个苹果放到N个相同盘子和N个不同盘子的解法
- 获益匪浅:在北京每月能白捡一万元
- 塔望 用食品改变世界
- matlab对遥感影像投影转换,在matlab中实现遥感影像和shp文件的结合显示
- 20不努力,30做助理(转载)
- 基于Wallpaper Engine的html插件罗盘时钟实现及简易桌面替换
- MIT-BIH-ECG使用
- 【厚积薄发系列】读书笔记4—《伙伴教练:转化团队高效能的关键力量》小记
热门文章
- USACO section2.4 Cow Tours题解代码
- Thymeleaf设置固定值属性
- 高铁的速度 华为的服务
- CSS+SVG实现简单的点赞效果
- token 微信access 过期_.Net微信开发之如何解决access_token过期问题
- 2012服务器系统显示这台电脑,两台windows server 2012 R2 服务器 故障:计算机已经从检测错误后重新启动。请问如何解决?...
- 看京东如何把Intel RealSense技术用在物流上
- 猫咪藏在哪个房间python作业_猫咪生气躲进房间,众人找到后,猫咪一脸疑问:听说你们在找我...
- ps知识点2-吸管、修复、画笔、仿章
- RLS算法-公式初探