本 Demo 基于 Spring Boot 构建,实现微信公众号后端开发功能。
本项目修改自 WxJava 的 Demo 演示程序 weixin-java-mp-demo-springboot,更多官方 Demo 请查阅此处。
WxJava 是业界一款广受好评的 Java 微信开发 SDK,本 Demo 旨在创建一个快速可运行的微信公众号服务,降低入门门槛,让初学者们快速体会到使用 WxJava 的方便之处。
如有问题请【在此提问】。
使用步骤:
- 请注意,本 demo 为简化代码编译时加入了 lombok 支持,如果不了解 lombok 的话,请先学习下相关知识,比如可以阅读此文章;
- 另外,新手遇到问题,请务必先阅读【开发文档首页】的常见问题部分,可以少走很多弯路,节省不少时间。
- 配置:
/src/main/resources/application.yml
wx:
mp:
configs:
- appId: 1111 (一个公众号的appid)
secret: 1111(公众号的appsecret)
token: 111 (接口配置里的Token值)
aesKey: 111 (接口配置里的EncodingAESKey值)
- appId: 2222 (另一个公众号的appid,以下同上)
secret: 1111
token: 111
aesKey: 111
- 运行Java程序:
WxMpDemoApplication
; - 配置微信公众号中的接口地址:http://公网可访问域名/wx/portal/xxxxx (注意,xxxxx为对应公众号的appid值);
- 根据自己需要修改各个handler的实现,加入自己的业务逻辑。
环境搭建教程
环境准备
-
到微信公众平台申请测试号一个,申请地址
-
不需要服务器,用外网映射工具,本次使用
Sunny-Ngrok
这个映射工具在开发过程起到非常重要的作用,因为微信服务器是在外网的,我们本地开发的代码是部署在本地 tomcat 服务器的,本地tomcat是不能访问外网的微信服务器的,所以要借助 Ngrok 这个工具把我们本地 ip 映射到外网,这样本地代码就可以跟微信服务器交互了,这样调试代码就非常方便了。
Ngrok 是外国的一款软件,服务器在美国,正常情况下,国内网络也是不能访问的(被墙了,大家都懂的)。在这里真的非常感谢大神 Sunny 把服务器部署到了香港,防止被墙让我们能够访问美国 Ngrok 服务器。更重要的是免费使用啊!免费使用啊!免费使用啊!
-
开发工具,本次使用并将长期使用
IntelliJ IDEA
部署 Ngrok
1、下载Sunny-Ngrok客户端:https://www.ngrok.cc/
2、注册Sunny-Ngrok后台管理账号:https://www.ngrok.cc/login/register
3、登录之后开通隧道:隧道名字随便填;前置域名就是你要映射的外网地址;本地端口就是本地ip:127.0.0.1+tomcat端口号:8080(本地的都可以修改,但是微信只能访问80和443端口,所以最好用默认的,不要修改)http验证用户名和密码不要填,因为到时这个地址要部署到微信后台的,设置之后微信服务器就不能访问这个映射地址了,微信服务器不知道你的用户名和密码。
4、本地运行Sunny-Ngrok启动工具.bat,将隧道id复制到启动工具,这样本地ip就映射到外网了。
Clone我的代码,并运行起来代码下载地址
配置微信测试号页面
-
项目成功运行后,并且用 Ngrok完成外网映射后才能填写接口配置信息
注意:配置微信公众号中的接口地址:http:// ngrok分配给你的域名/wx/portal/xxxxx (注意,xxxxx为对应公众号的appid值);
-
点击提交,微信后台完成接口校验。
-
扫码关注你的测试公众号进行功能验证
实现效果
目前仅实现了简单的消息处理和扫码demo
欢迎交流,我的GitHub
拓展
基于 Spring Boot 和 WxJava 实现网站接入微信扫码登录
关于我
微信公众号:Guevara的笔记,技术菜鸟记录技术学习过程。