SpringBoot整合WxJava开启消息推送的实现

 更新时间:2022年03月30日 09:35:53   作者:Asurplus、  
本文主要介绍了SpringBoot整合WxJava开启消息推送,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

接入微信小程序消息推送服务,可以3种方式选择其一:

1、开发者服务器接收消息推送
2、云函数接收消息推送
3、微信云托管服务接收消息推送

开发者服务器接收消息推送,开发者需要按照如下步骤完成:

1、填写服务器配置
2、验证服务器地址的有效性
3、据接口文档实现业务逻辑,接收消息和事件

1、引入 WxJava 依赖

<!-- web支持 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 微信小程序开发 -->
<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>wx-java-miniapp-spring-boot-starter</artifactId>
    <version>4.2.0</version>
</dependency>

2、申请微信小程序

https://mp.weixin.qq.com/

使用邮箱注册一个微信小程序账号,一个邮箱仅能注册一个微信小程序账号

3、微信小程序配置信息

登录微信小程序后,在:开发–》开发管理 找到小程序的基本信息:

在这里插入图片描述

将 AppID,AppSecret 配置在项目配置文件中

# 微信开发配置
wx:
  # 微信小程序开发
  miniapp:
      appid: xxxxxxxxxx
      secret: xxxxxxxxxx
      # 配置消息推送需要
      token: 
      aesKey: 
      msgDataFormat: 
      # 存储类型
      config-storage:
        type: redistemplate

配置了 config-storage.type 决定我们获取的 AccessToken 存放的位置,默认存放在本地缓存中,可选存在 redis 中,我们可以存放在 redis 中进行可视化管理。

4、消息推送配置

在开发管理页面往下滑,找到 “消息推送” 模块,启用 “消息推送”

在这里插入图片描述

这里我已经启用了,我们点击修改,重新配置我们的消息推送配置

在这里插入图片描述

1、URL,即微信推送消息的时候,调用你的 api 接口地址

2、Token,这个为自定义 token,做参数校验使用的

3、EncodingAESKey,消息加密密钥,我们可以选择随机生成

4、消息加密方式,我们为了数据安全,选择 “安全模式”

5、数据格式,我们选择 JSON 或 XML 都行

对应的后台配置文件配置为:

# 微信开发配置
wx:
  # 微信小程序开发
  miniapp:
      appid: xxxxxxxxxx
      secret: xxxxxxxxxx
      # 配置消息推送需要
      token: asurplus_token
      aesKey: PeQ3KmxFbhko0FdR5WG6Hn8wOuKuhQfr6ZNl7ykRGaM
      msgDataFormat: JSON
      # 存储类型
      config-storage:
        type: redistemplate

5、接收消息推送的 API

import cn.binarywang.wx.miniapp.api.WxMaService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 微信小程序消息推送
 */
@Slf4j
@RestController
@RequestMapping("wx/ma/welcome")
public class WxMaMsgController {

    @Autowired
    private WxMaService wxMaService;

    /**
     * 消息校验,确定是微信发送的消息
     *
     * @param signature
     * @param timestamp
     * @param nonce
     * @param echostr
     * @return
     * @throws Exception
     */
    @GetMapping
    public String doGet(String signature, String timestamp, String nonce, String echostr) {
        // 消息合法
        if (wxMaService.checkSignature(timestamp, nonce, signature)) {
            log.info("-------------微信小程序消息验证通过");
            return echostr;
        }
        // 消息签名不正确,说明不是公众平台发过来的消息
        return null;
    }
}

第四步配置的 URL 应为:http://lizhou.4kb.cn/wx/ma/welcome

其中,lizhou.4kb.cn 为你的域名,没有域名的参考文章:使用内网穿透工具Ngrok代理本地服务

6、消息推送测试

启动本地服务,在第四步的页面,点击 “确定”,得到如下结果:

在这里插入图片描述

表示,消息推送配置成功,看后台日志:

在这里插入图片描述

微信服务器推送的消息,通过了校验,表示确实是微信服务器发送的消息

到此这篇关于SpringBoot整合WxJava开启消息推送的实现的文章就介绍到这了,更多相关SpringBoot WxJava消息推送内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JAVA Springboot配置i18n国际化语言详细步骤

    JAVA Springboot配置i18n国际化语言详细步骤

    国际化(Internationalization,缩写为i18n)是指根据来展示不同的内容,使应用程序能够适应不同的语言和文化习惯,下面这篇文章主要给大家介绍了关于JAVA Springboot配置i18n国际化语言的详细步骤,需要的朋友可以参考下
    2024-08-08
  • springboot+nginx+https+linux实现负载均衡加域名访问简单测试

    springboot+nginx+https+linux实现负载均衡加域名访问简单测试

    这篇文章主要介绍了springboot+nginx+https+linux实现负载均衡加域名访问简单测试,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • ElasticSearch的完整安装教程

    ElasticSearch的完整安装教程

    这篇文章主要给大家分享介绍了ElasticSearch的完整安装教程,文中通过示例代码介绍的非常详细,对大家学习或者使用ElasticSearch具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • Java实现Excel百万级数据导入功能的示例代码

    Java实现Excel百万级数据导入功能的示例代码

    这篇文章主要为大家详细介绍了Java如何实现Excel百万级数据导入功能,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2024-04-04
  • 详解JVM如何判断一个对象是否可以被回收

    详解JVM如何判断一个对象是否可以被回收

    在c++中,当我们使用完某个对象的时候,需要显示的将对象回收,在java中,jvm会帮助我们进行垃圾回收,无需程序员自己写代码进行回收,下面我们就来看看JVM是如何判断一个对象是否可以被回收的吧
    2023-11-11
  • MyBatis中$和#的深入讲解

    MyBatis中$和#的深入讲解

    这篇文章主要给大家介绍了关于MyBatis中$和#的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • MyBatisPlus报错:Failed to process,please exclude the tableName or statementId问题

    MyBatisPlus报错:Failed to process,please exclud

    这篇文章主要介绍了MyBatisPlus报错:Failed to process,please exclude the tableName or statementId问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • RestTemplate get请求携带headers自动拼接参数方式

    RestTemplate get请求携带headers自动拼接参数方式

    这篇文章主要介绍了RestTemplate get请求携带headers自动拼接参数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Spring Boot如何处理@Resource示例分析

    Spring Boot如何处理@Resource示例分析

    这篇文章主要为大家介绍了Spring Boot如何处理@Resource示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • RocketMQ中的NameServer详细解析

    RocketMQ中的NameServer详细解析

    这篇文章主要介绍了RocketMQ中的NameServer详细解析,NameServer是一个非常简单的Topic路由注册中心,支持Broker的动态注册与发现,因此不能保证NameServer的一致性,需要的朋友可以参考下
    2024-01-01

最新评论