微信公众号发送模板消息 Java实现。
时间:2022-04-27
本文章向大家介绍微信公众号发送模板消息 Java实现。,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本博文是测试公众号调用模板接口测试。请不要完全复制我的代码。里面的测试代码中有本人测试号的微信模板id。麻烦替换成自己的可以吗?
第一步:创建模板信息
第二步:准备模板代码实体类用到的属性自行加入就行
public class TemplateData {
private String value;
private String color;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
public class WxTemplate {
/**
* 模板消息id
*/
private String template_id;
/**
* 用户openId
*/
private String touser;
/**
* URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)
*/
private String url;
/**
* 标题颜色
*/
private String topcolor;
/**
* 详细内容
*/
private Map<String,TemplateData> data;
public String getTemplate_id() {
return template_id;
}
public void setTemplate_id(String template_id) {
this.template_id = template_id;
}
public String getTouser() {
return touser;
}
public void setTouser(String touser) {
this.touser = touser;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTopcolor() {
return topcolor;
}
public void setTopcolor(String topcolor) {
this.topcolor = topcolor;
}
public Map<String, TemplateData> getData() {
return data;
}
public void setData(Map<String, TemplateData> data) {
this.data = data;
}
}
第三步:具体方式实现本博文只是测试公众号测试模板接口调用
public class SendOrderPaySuccessMsg {
Logger log = LoggerFactory.getLogger(getClass());
/**
* 发送模板消息
* appId 公众账号的唯一标识
* appSecret 公众账号的密钥
* openId 用户标识
*/
public void send_template_message(String appId, String appSecret, String openId) {
AccessToken token = WeixinUtil.getAccessToken(appId, appSecret);
String access_token = token.getToken();
String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+access_token;
WxTemplate temp = new WxTemplate();
temp.setUrl("http://weixin.qq.com/download");
temp.setTouser(openId);
temp.setTopcolor("#000000");
// temp.setTemplate_id("ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY");
temp.setTemplate_id("LBBm6qscHUcz-0Gh7PlBonsLKtJBHjCLIirnaiBZ4xQ");
Map<String,TemplateData> m = new HashMap<String,TemplateData>();
TemplateData first = new TemplateData();
first.setColor("#000000");
first.setValue("这里填写您要发送的模板信息");
m.put("first", first);
TemplateData name = new TemplateData();
name.setColor("#000000");
name.setValue("另一行内人");
m.put("name", name);
TemplateData wuliu = new TemplateData();
wuliu.setColor("#000000");
wuliu.setValue("N行");
m.put("wuliu", wuliu);
TemplateData orderNo = new TemplateData();
orderNo.setColor("#000000");
orderNo.setValue("**666666");
m.put("orderNo", orderNo);
TemplateData receiveAddr = new TemplateData();
receiveAddr.setColor("#000000");
receiveAddr.setValue("*测试模板");
m.put("receiveAddr", receiveAddr);
TemplateData remark = new TemplateData();
remark.setColor("#000000");
remark.setValue("***备注说明***");
m.put("Remark", remark);
temp.setData(m);
String jsonString = JSONObject.fromObject(temp).toString();
JSONObject jsonObject = WeixinUtil.httpRequest(url, "POST", jsonString);
System.out.println(jsonObject);
int result = 0;
if (null != jsonObject) {
if (0 != jsonObject.getInt("errcode")) {
result = jsonObject.getInt("errcode");
log.error("错误 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));
}
}
log.info("模板消息发送结果:"+result);
}
第四步:截图示意
- 王磊:AI 时代物流行业的 OCR 应用
- 张兴华:云端架构助力企业快速成长
- 腾讯云GAME-TECH沙龙干货回顾:腾讯游戏云全球化实践
- 基于内容关键性的高效 FEC 抗网络丢包算法
- 腾讯云GAME-TECH沙龙干货回顾:三七互娱游戏全球化运营心得分享
- 《实现模式》读书总结
- 腾讯云 GAME-TECH 沙龙干货回顾:Eyougame 海外发行实践分享
- 腾讯 AI Lab 副主任俞栋:过去两年基于深度学习的声学模型进展
- 白辉(七公):电商转型难题,看云如何破题
- 《Node.js在CLI下的工程化体系实践》成都OSC源创会分享总结
- 5分钟教你玩转 sklearn 机器学习(上)
- WebSocket系列之socket.io
- Python 数据分析学习笔记
- ERP管理软件系统设计方案
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- kubernetes dashboard insecure配置
- seqtk抽取reads
- Version of Delve is too old for this version of Go【Goland Debug】报错
- python之turtle模块-黄金螺线
- python之turtle模块-生化危机
- Python之turtle模块-饼状图
- python之turtle模块-弧线
- Python之turtle模块-画圈圈
- Python之turtle模块-正多边形
- synchronized 锁的原理
- Centos: 添加一个IP地址
- 能动手绝不多说:开源评论系统remark42上手指南
- R语言入门之因子及常用函数
- R语言入门之R包的安装
- R语言入门系列之寻找你的R包