微信公众号发送消息模板(java)
这段时间接触公众号开发,写下向用户发送消息模板的接口调用
先上接口代码
public static JSONObject sendModelMessage(ServletContext context,JSONObject jsonMsg) {
System.out.println("消息内容:"+jsonMsg);
boolean result = false;
try {
getWX_AccessToken(context);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 拼接请求地址
String requestUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
requestUrl = requestUrl.replace("ACCESS_TOKEN", context.getAttribute(ContextTokenName).toString());
// 发送客服消息
JSONObject jsonObject = getJsonByWX(requestUrl, context, "POST",jsonMsg, false);
if (null != jsonObject) {
int errorCode = jsonObject.getInt("errcode");
String errorMsg = jsonObject.getString("errmsg");
if (0 == errorCode) {
result = true;
System.out.println("模板消息发送成功 errcode:{} "+errorCode+"----"+errorMsg);
} else {
System.out.println("模板消息发送失败 errcode:{} "+errorCode+"----"+errorMsg);
}
}
return null;
}
15行那段getJsonByWX是统一调用微信接口的方法,每个项目都有自己的调用方法,我这里就不贴了。接口调用链接:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
接下来就是建个bean类,里面写入一下颜色及值
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;
}
在公众号里填写模板消息的对应格式

之后就是有个触发点,我选择发货后把发货信息发送给用户
PageData wechatTemplate = new PageData();
wechatTemplate.put("template_id", "填写你的模板id");
wechatTemplate.put("touser", userInfo.get("openid"));//获取用户的openid Map<String,TemplateMessageUtil> mapdata = new HashMap<>(); TemplateMessageUtil first = new TemplateMessageUtil();
first.setColor("#173177");
first.setValue("发货通知");
mapdata.put("first", first); TemplateMessageUtil text1 = new TemplateMessageUtil();
text1.setColor("#173177");
text1.setValue("您好,您所购买的商品已发货。");
mapdata.put("text1", text1); TemplateMessageUtil text2 = new TemplateMessageUtil();
text2.setColor("#173177");
text2.setValue(expresser_name);
mapdata.put("text2", text2); TemplateMessageUtil text3 = new TemplateMessageUtil();
text3.setColor("#173177");
text3.setValue(expresser_phone);
mapdata.put("text3", text3); TemplateMessageUtil remark = new TemplateMessageUtil();
remark.setColor("#173177");
remark.setValue("请保持电话畅通>>");
mapdata.put("remark", remark); JSONObject json = new JSONObject();
json.put("data",mapdata);
json.putAll(wechatTemplate);//转为json WXInterface.sendModelMessage(context,json);
之后手机就会收到信息了

整体思路是这样,也是参照百度而来,因为每个人的项目里方法都不一样,我就不详细贴上,既然做到发送模板消息了,统一调用微信接口的方法应每个人该也早写在工具类里了,每个人都不同,当应该都有,调用这个方法,把微信模板消息连接的条件access_token写进去就请求了,剩下的就是传入你要发送的消息,消息存入集合,集合转json才行,JSONObject类相信也都有,我也不贴了,每个人项目都不一样,没必要照搬过去,就照着自己原先已有的类改进。
微信公众号发送消息模板(java)的更多相关文章
- 微信公众号发送消息给用户 php
1.微信公众号 这里得话 一开始先去看了 微信公众号的接口 发现网页授权需要时认证的服务号,一开始想的是那去申请一个认证的服务号岂不是很费事,然后网上搜了搜,发现了还有微信公众号个人测试号这个东西,所 ...
- Python 微信公众号发送消息
1. 公众号测试地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 2. ...
- php之微信公众号发送模板消息
讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0). 先看一下效果,如图: 就是类似于这样的,下面讲一下实现过程: 第一步:微信公众号申请模板消息权限: 立即申请: ...
- 微信小程序结合微信公众号进行消息发送
微信小程序结合微信公众号进行消息发送 由于小程序的模板消息已经废弃了,官方让使用订阅消息功能.而订阅消息的使用限制比较大,用户必须得订阅.需要获取用户同意接收消息的权限.用户必须得和小程序有交互的时候 ...
- Java微信公众号安全模式消息解密
这篇文章主要为大家详细介绍了Java微信公众号安全模式消息解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.微信公众平台下载解密工具,导入项目中,根据demo解密消息 public stat ...
- C#实现微信公众号群发消息(解决一天只能发一次的限制)
经过几天研究网上的代码和谢灿大神的帮忙,今天终于用C#实现了微信公众号群发消息,现在整理一下. 总体思路:1.首先必须要在微信公众平台上申请一个公众号. 2.然后进行模拟登陆.(由于我对http传输原 ...
- 2014-07-24 .NET实现微信公众号的消息回复与自定义菜单
今天是在吾索实习的第12天.我们在这一天中,基本实现了微信公众号的消息回复与自定义菜单的创建. 首先,是实现消息回复,其关键点如下: 读取POST来的数据流:Stream 数据流变量 = HttpCo ...
- 微信公众号发送告警Python脚本
调用该脚本,可以向微信公众号发生告警. #!/bin/env python #coding:utf-8 #Author: Hogan #Descript : 微信公众号发送告警脚本 import ur ...
- php之微信公众号发送模板消息参观模仿
上篇文章中鞋到了公众号发送末班消息,他是最后调用两个方法,本文章简化一下 将下面的php方法放到一个可以引入的公共类中即可 构建模板消息: 我把需要用到的模板消息 都写成一个个方法,放在公共类文件中了 ...
随机推荐
- Java反射机制动态代理
1.什么事反射机制动态代理 在一段代码的前后动态执行其他操作,比如有一个方法是往数据库添加一个记录,我们可以通过动态代理,在操作数据库方法的前和后添加代码执行打开数据库连接和关闭数据库连接. 2.演示 ...
- C#判断奇偶数的函数
// 现代流行的"程序员"public static bool IsOdd(int n) { while (true) { switch (n) ...
- zabbix系列之六——安装后配置二Items
https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp 1Items 1.1creating items ...
- EF实体对象解耦 - 泛型联表查询
为了达到模块间最小耦合,单模块业务数据不与其他模块发生关系.在操作数据库的时候,采用EF泛型操作.但泛型操作不好实现联表,经过一晚的试验发现了一种定义数据库上下文并联表的方式. 1.实体对象定义.实体 ...
- Windows Pre-commit hook for comment length Subversion
@echo off :: Stops commits that have empty log messages. @echo off setlocal rem Subversion sends thr ...
- asp.net MVC4 框架揭秘 读书笔记系列3
IIS/ASP.net管道 本节全部用图形表示便于理解和记忆 1.3.1 IIS5.x与asp.net 1.3.2 IIS 6.0与asp.net 1.3.3 IIS7.0与asp.net 基于IIS ...
- EXC_BAD_ACCESS错误
EXC_BAD_ACCESS错误 一直都是使用ARC开发,咋就莫名其妙的出现这种EXC_BAD_ACCESS错误. 一直都是是怀疑在block中有着特殊处理,导致了使用时出现了这种错误,查找了好久.. ...
- mvc 下json超过限制,上传excel大小限制
json超过限制 解决方案1:config中添加节点 控制序列化长度 <webServices> <jsonSerialization maxJsonLength="10 ...
- 10-19文献阅读之DCB
---恢复内容开始--- <一种精确估计区域北斗接收机硬件延迟的方法>-2016-,很有价值 估计北斗接收机硬件延迟,不需要传统复杂的电离层模型.已知一个参考站接收机硬件延迟的条件下,利用 ...
- 第二次作业 APP分析
第一部分 调研, 评测 1.下载软件并使用. 今天我要分析的软件app是UC浏览器这个软件,UC浏览器的用户群体还是挺多的,作为一款主流之一的浏览器APP,整体的用户体验还是很好的.简洁的界面还有中间 ...