SpringBoot助力!轻松实现微信模版消息推送

简介: SpringBoot助力!轻松实现微信模版消息推送

本篇文章的主题是 如何通过springboot来实现微信的模版消息推送

实现效果:

在当今的信息化时代,微信作为国人最为常用的通讯工具之一,已经不仅仅是一个简单的社交应用,更是连接人与服务、人与信息的桥梁。企业微信模板消息作为一种高效、便捷的信息传递方式,被广泛应用于各类业务场景中,如订单通知、会议提醒、活动推送等。

通过本教程的学习,您将掌握如何在Spring Boot项目中集成微信SDK,如何编写代码发送微信模板消息,并了解整个推送的过程。

简要说明:

由于发送模版消息需要微信的服务号,申请服务号的话需要营业执照,个人是没有办法申请的,但是微信为了给开发者们提供测试特意开放了公众平台测试账号号,大家可以申请测试号来进行模版推送的开发和测试

开发步骤:

  1. 访问微信公众平台测试账号页面
  2. 获取appID和appsecret
  3. 扫码二维码添加测试号
  4. 添加模版消息
  5. 集成微信SDK
  6. 调用相关API

1、微信公众平台测试号管理

1.1 访问微信公众平台测试账号页面

大家首先访问微信公众平台地址:https://mp.weixin.qq.com/

如果还没有注册账号的可以申请一个个人订阅号,这个教程大家网上自行查阅,很简单~

登录成功之后选择 开发者工具 --> 公众平台测试账号

测试号管理页面如下:

1.2 获取appID和appsecret

获取你的测试号信息

1.3 扫码二维码添加测试号

使用你的微信扫描这个测试公众号的二维码并关注

然后会得到你的**微信号(openId)**这个后面会用到

1.4 添加模版消息

点击新增测试模版

添加模板信息

一定要按照注意事项填写 参数需以{{开头,以.DATA}}结尾

我这边创建了两个模版,这个模版id后面也会用到

2、集成微信SDK

2.1 引入微信工具包
<dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-mp</artifactId>
            <version>3.0.0</version>
        </dependency>
2.2 添加配置文件

appId、appSecret和orderTemplateId就是上面微信公众平台测试号管理中我们获取到的几个参数,现在把这三个参数配置到我们的项目中。

callBackUrl暂时先不用管

创建配置类

@ConfigurationProperties(prefix = "wechat.public")
@Component
@Data
@RefreshScope
public class WeChatProperties {
    private String appId;
    private String appSecret;
    private String callBackUrl;
    private String orderTemplateId;
}

3、API调用

3.1 发送消息模版的实现
package com.mdx.user.manager;
import com.mdx.user.config.WeChatProperties;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
 * @author : jiagang
 * @date : Created in 2022/7/26 10:42
 */
@Component
@Slf4j
public class WxMessagesManager {
    @Autowired
    private WeChatProperties weChatProperties;
    public void sendOrderMsg(String openId, String orderId, String serviceName){
        String templateId = weChatProperties.getOrderTemplateId();
        // 订单时间
        SimpleDateFormat sdf = new SimpleDateFormat();
        sdf.applyPattern("yyyy-MM-dd HH:mm");
        Date date = new Date();
        String timeNow = sdf.format(date);
        WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();
        wxStorage.setAppId(weChatProperties.getAppId());
        wxStorage.setSecret(weChatProperties.getAppSecret());
        WxMpService wxMpService = new WxMpServiceImpl();
        wxMpService.setWxMpConfigStorage(wxStorage);
        // 此处的 key/value 需和模板消息对应
        List<WxMpTemplateData> wxMpTemplateDataList = Arrays.asList(
                new WxMpTemplateData("first", "您有一个新的订货单", "#FF0000"),
                new WxMpTemplateData("keyword1", orderId),
                new WxMpTemplateData("keyword2", serviceName),
                new WxMpTemplateData("keyword3", timeNow),
                new WxMpTemplateData("remark", "请登录系统查看订单详情并及时配货")
        );
        WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
                .toUser(openId) // openId为1.3步骤中得到的微信号
                .templateId(templateId)
                .data(wxMpTemplateDataList)
                .url("https://blog.csdn.net/qq_38374397?type=blog")  // 跳转详情地址
                .build();
        try {
            wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
            log.info("消息模版发送成功~");
        } catch (Exception e) {
            log.error("推送失败:" + e.getMessage());
        }
    }
}
3.2 测试类调用

openId为1.3步骤中得到的微信号,其余参数可自定义

3.3 效果展示

移动端:

点击详情:

PC端:

最后送大家一句话白驹过隙,沧海桑田

相关文章
|
3月前
|
移动开发 安全 JavaScript
SpringBoot接入微信JSSDK,看这篇妥妥的
这篇教程详细介绍了如何在Spring Boot项目中接入微信JSSDK,实现H5页面的自定义分享和调用相册选取图片等功能。文章首先通过对比理想与现实的分享效果,引出了接入微信JSSDK的必要性。接着,作者提供了GitHub和Gitee上的项目源码链接,并逐步讲解了整个接入过程的关键步骤,包括配置文件、主要类和方法的实现细节,以及必要的微信公众号设置。此外,还特别强调了几个常见问题及其解决方案,如域名绑定、IP白名单设置和签名验证等。最后,通过实际测试验证了功能的正确性。适合初学者快速上手微信JSSDK接入。
60 8
SpringBoot接入微信JSSDK,看这篇妥妥的
|
3月前
|
小程序 JavaScript Java
微信小程序+SpringBoot接入后台服务,接口数据来自后端
这篇文章介绍了如何将微信小程序与SpringBoot后端服务进行数据交互,包括后端接口的编写、小程序获取接口数据的方法,以及数据在小程序中的展示。同时,还涉及到了使用Vue搭建后台管理系统,方便数据的查看和管理。
微信小程序+SpringBoot接入后台服务,接口数据来自后端
|
3月前
|
小程序 安全 Java
|
3月前
|
小程序 Java API
springboot 微信小程序整合websocket,实现发送提醒消息
springboot 微信小程序整合websocket,实现发送提醒消息
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
82 7
|
3月前
|
JavaScript 前端开发 网络协议
WebSocket在Java Spring Boot+Vue框架中实现消息推送功能
在现代Web应用中,实时消息提醒是一项非常重要的功能,能够极大地提升用户体验。WebSocket作为一种在单个TCP连接上进行全双工通信的协议,为实现实时消息提醒提供了高效且低延迟的解决方案。本文将详细介绍如何在Java Spring Boot后端和Vue前端框架中利用WebSocket实现消息提醒功能。
159 0
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
92 7
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的自助点餐系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的自助点餐系统的详细设计和实现
42 1
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的外卖点餐系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的外卖点餐系统的详细设计和实现
52 0
|
5月前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的餐厅点餐系统微信小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的餐厅点餐系统微信小程序的详细设计和实现
53 0