服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 微信公众号服务号推送模板消息设置方法(后端java)

微信公众号服务号推送模板消息设置方法(后端java)

2023-03-01 14:58TaoCap Java教程

公众号时经常会需要写推送消息,从网上找了一大堆,都不是很全,所以这篇文章主要介绍了微信公众号服务号推送模板消息设置方法的相关资料,需要的朋友可以参考下

模板消息文档

公众号的类型分为服务号、订阅号和企业号,其中服务号和订阅号比较常见。要想实现公众号推动消息给指定的用户,其类型必须为服务号。

 

推送模板消息示例如下 :

微信公众号服务号推送模板消息设置方法(后端java)

 

设置模板消息

此处为正式环境的设置,开发环境可使用微信测试平台提供的测试账号体验和测试公众平台的所有高级接口,无需提前申请审核,详情见本文最后章节。

首次设置需要开启模板消息功能,登录公众号后台: mp.weixin.qq.com ,在左侧导航栏最下方有「添加新的功能」,打开,在「广告与服务」一类中找到「模板消息」,开通即可。

打开「模板消息」,选择模板库,需先选择所在行业(一个月只能修改一次),之后在下方的行业模板中选择合适的模板(可以搜索模板关键字)。

微信公众号服务号推送模板消息设置方法(后端java)

添加完选择的模板后在「我的模板」中可以查看模板的详细信息,此处的模板ID后面代码中会用到。

微信公众号服务号推送模板消息设置方法(后端java)

 

编码

1. 添加依赖

// Gradle
dependencies {
	// ...
	compile "com.github.binarywang:weixin-java-mp:3.3.0"
	// ...
}


// Maven
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>3.0.0</version>
</dependency>

2. SubscriptionMessageUtil.java

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 java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

public class SubscriptionMessageUtil {

  /**
   * 下单后通知供货商
   */
  public static void sendOrderMsg(String appid,
                                  String appSecret,
                                  String userOpenid,
                                  String orderId,
                                  String serviceName) {

      // 模板消息 ID
      // {{first.DATA}}
      // 订单编号:{{keyword1.DATA}}
      // 订货终端:{{keyword2.DATA}}
      // 下单时间:{{keyword3.DATA}}
      // {{remark.DATA}}
      String OrderMsgTemplateId = "Th5MwuyqSjfADUDOJ5PSGDf1swr1-nHmOtLYlVX8n_8";

      // 卡片详情跳转页,设置此值,当点击消息时会打开指定的页面
//        String detailUrl = "https://bing.com";

      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(appid);
      wxStorage.setSecret(appSecret);

      WxMpService wxMpService = new WxMpServiceImpl();
      wxMpService.setWxMpConfigStorage(wxStorage);

    	// 此处的 key/value 需和模板消息对应
      List<WxMpTemplateData> wxMpTemplateDataList = Arrays.asList(
              new WxMpTemplateData("first", "您有一个新的订货单", "#000000"),
              new WxMpTemplateData("keyword1", orderId),
              new WxMpTemplateData("keyword2", serviceName),
              new WxMpTemplateData("keyword3", timeNow),
              new WxMpTemplateData("remark", "请登录系统查看订单详情并及时配货")
      );

      WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
              .toUser(userOpenid)
              .templateId(OrderMsgTemplateId)
              .data(wxMpTemplateDataList)
//                .url(detailUrl)
              .build();

      try {
          wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
      } catch (Exception e) {
          System.out.println("推送失败:" + e.getMessage());
      }

  }

}

3. 配置参数

xx.properties

wx:
mp:
  appid: xxx
  appSecret: xxx

4. 使用

在需要的 Controller 中直接引用即可

@Controller
@RequestMapping("/order")
public class XXController {

	@Value("${wx.mp.appid}")
	private String APPID;

	@Value("${wx.mp.appSecret}")
	private String APP_SECRET;

@RequestMapping(value = "/create", method = RequestMethod.POST)
public CommonResult create() {
  
  String openid = "";		// 发送给指定的用户
  String serviceName = "";
  String orderNo = "";
  
  SubscriptionMessage.sendOrderMsg(APPID, APP_SECRET, openid, orderNo, serviceName);
}

}

 

微信测试号

开发过程中直接使用正式微信号、公众号可能会有诸多不便,所以微信公众平台提供接口测试账号,可直接体验和测试公众平台所有高级接口。

地址: 微信公众平台测试账号

登录后可查看测试账号的 appid、appsecret

微信公众号服务号推送模板消息设置方法(后端java)

可以使用微信扫描页面下方的测试公众号二维码关注,关注后可获取当前微信号的测试 openid(非公众账号的 openid),可用于代码中临时指定模板消息接收用户,方便开发。

微信公众号服务号推送模板消息设置方法(后端java)

该测试平台还提供测试用模板消息,可自定义模板消息,创建完成后会临时生成模板 ID ,代码中直接替换即可。

微信公众号服务号推送模板消息设置方法(后端java)

接收消息示例如下:

微信公众号服务号推送模板消息设置方法(后端java)

 

总结

到此这篇关于微信公众号服务号推送模板消息设置方法的文章就介绍到这了,更多相关公众号推送模板消息内容请搜索服务器之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/yotcap/article/details/123091044

延伸 · 阅读

精彩推荐
  • Java教程mvc架构实现商品的购买(二)

    mvc架构实现商品的购买(二)

    这篇文章主要为大家详细介绍了mvc架构实现商品购买功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    scx_white2532020-07-05
  • Java教程mybatis动态拼接实现有条件的插入

    mybatis动态拼接实现有条件的插入

    这篇文章主要介绍了mybatis动态拼接实现有条件的插入,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    北漂小白菜11202022-08-09
  • Java教程Java实战之基于TCP实现简单聊天程序

    Java实战之基于TCP实现简单聊天程序

    这篇文章主要为大家详细介绍了如何在Java中基于TCP实现简单聊天程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一...

    howard20057902022-10-10
  • Java教程SpringMVC+Shiro的基本使用及功能介绍

    SpringMVC+Shiro的基本使用及功能介绍

    本文给大家介绍SpringMVC+Shiro的基本使用,Apache Shiro是Java的一个安全框架,Shiro本身无法知道所持有令牌的用户是否合法,因为除了项目的设计人员恐怕谁都...

    Resourceful!8792022-11-25
  • Java教程一篇文章带你入门java模板模式

    一篇文章带你入门java模板模式

    这篇文章主要为大家详细介绍了java模板模式的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    zsr613510712021-11-11
  • Java教程SpringBoot集成阿里巴巴Druid监控的示例代码

    SpringBoot集成阿里巴巴Druid监控的示例代码

    这篇文章主要介绍了SpringBoot集成阿里巴巴Druid监控的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    dalaoyang11042021-04-21
  • Java教程剑指Offer之Java算法习题精讲二叉树专项训练

    剑指Offer之Java算法习题精讲二叉树专项训练

    跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化...

    明天一定.9172022-10-13
  • Java教程Java Collection集合用法详解

    Java Collection集合用法详解

    首先Collection是属于单列集合的顶层接口,表示为一组对象。其类型为引用数据类型,具体创建对象,通过多态的形式进行,本文将给大家详细的介绍,需要...

    做哈白日梦10502022-02-25