微信模板消息的发送动态封装(Java完美封装)

微信公众平台正式号注册地址

1、导入maven依赖

==============================================================================

org.dom4j

dom4j

2.1.1

jaxen

jaxen

1.2.0

org.projectlombok

lombok

com.thoughtworks.xstream

xstream

1.4.15

com.alibaba

fastjson

1.2.75

通过查看微信模板消息文档发现

发送模板消息需要的json数据

{

“touser”:“OPENID”,

“template_id”:“ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY”,

“url”:“http://weixin.qq.com/download”,

“miniprogram”:{

“appid”:“xiaochengxuappid12345”,

“pagepath”:“index?foo=bar”

},

“data”:{

“first”: {

“value”:“恭喜你购买成功!”,

“color”:“#173177”

},

“keyword1”:{

“value”:“巧克力”,

“color”:“#173177”

},

“keyword2”: {

“value”:“39.8元”,

“color”:“#173177”

},

“keyword3”: {

“value”:“2014年9月22日”,

“color”:“#173177”

},

“remark”:{

“value”:“欢迎再次购买!”,

“color”:“#173177”

}

}

}

在这里插入图片描述

模板实例

在这里插入图片描述

包含多种数据类型,并且以json数据格式请求接口便可以发送模板消息,发送成功效果。

在这里插入图片描述

我们看到。

  • first中的value对应的第一部分需要填充{{first.DATA}}占位符的数据,color对应字体的颜色

  • keyword可能包含一个或者多个,所以我们需要动态创建,根据模板中的消息提供。

  • remark填充最后一条数据

我们先创建六个实体类,对应模板消息用到的数据类型。

实体类代码:👇👇

=============================================================================

Remark


存储remark中的数据与颜色

package cn.xjt.wx.MessageEntity;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Remark {

private String value;

private String color;

}

Miniprogram //小程序相关数据,无小程序可以不填,或者填充空串


package cn.xjt.wx.MessageEntity;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Miniprogram {

private String appid;

private String pagepath;

}

Keyword,中间keyword部分


package cn.xjt.wx.MessageEntity;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Keyword {

private String value;

private String color;

}

First 首个数据


package cn.xjt.wx.MessageEntity;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import java.util.Date;

/**

  • @author xu

  • @Description

  • @createTime 2021年04月02日 17:02:00

*/

@Data

@AllArgsConstructor

@NoArgsConstructor

public class First {

private String value;

private String color;

}

data 包含first、keyword、remark


由于keyword不固定,所以我在实体类创建多个提供使用,根据需要,构造需要个数

package cn.xjt.wx.MessageEntity;

import lombok.AllArgsConstructor;

import lombok.NoArgsConstructor;

import java.util.List;

@lombok.Data

@AllArgsConstructor

@NoArgsConstructor

public class data {

private First first;

private Keyword keyword1;

private Keyword keyword2;

private Keyword keyword3;

private Keyword keyword4;

private Keyword keyword5;

private Remark remark;

public data(First first,Remark remark,Keyword … keyword){

this.first=first;

int count=1;

for (Keyword keyword1 : keyword) {

if (count==1){

this.keyword1=keyword1;

}else if (count==2){

this.keyword2=keyword1;

}else if (count==3){

this.keyword3=keyword1;

}else if (count==4){

this.keyword4=keyword1;

}else if (count==5){

this.keyword5=keyword1;

}

count++;

}

this.remark=remark;

}

}

JsonRootBean ,整合实体类所有数据


package cn.xjt.wx.MessageEntity;

import lombok.AllArgsConstructor;

import lombok.NoArgsConstructor;

import lombok.Data;

@Data

@AllArgsConstructor

@NoArgsConstructor

public class JsonRootBean {

private String touser;

private String template_id;

private String url;

private Miniprogram miniprogram;

最后

面试题文档来啦,内容很多,485页!

由于笔记的内容太多,没办法全部展示出来,下面只截取部分内容展示。

1111道Java工程师必问面试题

MyBatis 27题 + ZooKeeper 25题 + Dubbo 30题:

Elasticsearch 24 题 +Memcached + Redis 40题:

Spring 26 题+ 微服务 27题+ Linux 45题:

Java面试题合集:

late_id;

private String url;

private Miniprogram miniprogram;

最后

面试题文档来啦,内容很多,485页!

由于笔记的内容太多,没办法全部展示出来,下面只截取部分内容展示。

1111道Java工程师必问面试题

[外链图片转存中…(img-UQQ1uCKI-1714699565270)]

MyBatis 27题 + ZooKeeper 25题 + Dubbo 30题:

[外链图片转存中…(img-q2l3Vvj0-1714699565271)]

Elasticsearch 24 题 +Memcached + Redis 40题:

[外链图片转存中…(img-xS48CHWG-1714699565271)]

Spring 26 题+ 微服务 27题+ Linux 45题:

[外链图片转存中…(img-36Z6JiV3-1714699565272)]

Java面试题合集:

[外链图片转存中…(img-j3WPucQb-1714699565272)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值