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


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

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;

最后

小编精心为大家准备了一手资料

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

BATJ面试要点及Java架构师进阶资料

ok.Data;

@Data

@AllArgsConstructor

@NoArgsConstructor

public class JsonRootBean {

private String touser;

private String template_id;

最后

小编精心为大家准备了一手资料

[外链图片转存中…(img-SrAy0B4v-1714699541460)]

[外链图片转存中…(img-4feLDOuj-1714699541461)]

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

[外链图片转存中…(img-Bk8HxcyK-1714699541461)]

BATJ面试要点及Java架构师进阶资料

[外链图片转存中…(img-FJfaly2N-1714699541462)]

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值