ccran 的个人博客 ccran 的个人博客

记录精彩的程序人生

目录
SpringBoot搭建微信公众号开发环境
/    

SpringBoot搭建微信公众号开发环境

SpringBoot搭建微信公众号开发环境

本文记录通过SpringBoot后端项目搭建微信公众号的开发环境,涉及到的内容如下所示:

  • SpringBoot
  • WxJava
  • 公众号
  • docker
  • netapp

一、搭建流程

  1. 首先登陆微信公众平台,配置公众号开发环境,包括 开发者ID(AppID)开发者密码(AppSecret)令牌(Token)消息加解密密钥(EncodingAESKey) ,IP白名单、服务器地址(URL)后续配置。

公众号配置.png

  1. 克隆WxJava的脚手架项目,并根据微信公众平台设置和公众号业务逻辑修改代码。
  • 更改配置文件application.yml为第一个步骤中在微信公众平台设置的信息,并将服务器端口更改为80端口
wx:
  mp:
    useRedis: false
    redisConfig:
      host: 127.0.0.1
      port: 6379
      timeout: 2000
    configs:
      - appId: 1111 # 第一个公众号的AppID
        secret: 1111 # 第一个公众号的AppSecret
        token: 111 # 服务器配置里的Token
        aesKey: 111 # 服务器配置里的EncodingAESKey
      - appId: 2222 # 第二个公众号的appid,以下同上
        secret: 1111
        token: 111
        aesKey: 111
  • 根据公众号具体的业务逻辑修改handler包中各个Handler类的handle方法。比如SubscribeHandler用于处理用户订阅逻辑,MsgHandler用于处理用户消息逻辑

handler包

  • 例子:修改MsgHandler处理用户消息逻辑,逻辑为收到用户内容后,添加“收到信息内容:”前缀并回复
@Component
public class MsgHandler extends AbstractHandler {

    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
                                    Map<String, Object> context, WxMpService weixinService,
                                    WxSessionManager sessionManager) {

        if (!wxMessage.getMsgType().equals(XmlMsgType.EVENT)) {
            //TODO 可以选择将消息保存到本地
        }

        //TODO 组装回复消息
        String content = "收到信息内容:" + wxMessage.getContent();

        return new TextBuilder().build(content, wxMessage, weixinService);

    }

}
  1. 有两种方式可以完成项目的部署测试:公网IP服务器和内网穿透服务器
  • 若有公网IP服务器,推荐直接通过docker部署SpringBoot项目的方式部署到公网IP服务器上
  • 若没有公网IP服务器,可以通过natapp对本机进行内网穿透

首先登陆natapp官网配置隧道配置

natapp配置.png

然后输入生成的authtoken进行80端口的映射

# 通过natapp命令进行内网穿透
.\natapp.exe --authtoken xxxx

最终,外部应用访问http://sj76ay.netappfree.cc相当于访问本地的80端口

natapp.png

  1. 完成项目的部署后,需要在微信公众平台完成IP白名单服务器地址(URL) 的配置,最终可以在公众号测试效果。

二、总结

  1. Java已经有封装好的微信处理类库WxJava,其他语言可以在GitHub上搜索类似的库或包。
  2. 核心在于提供给微信公众平台一个可供外部访问的Server,可以通过购入一台云主机或者通过内网穿透提供。
  3. Handler的责任链机制值得一看。

标题:SpringBoot搭建微信公众号开发环境
作者:ccran
地址:https://ccran.online/articles/2021/07/12/1626077453339.html