controller接口:
/**
*
* @param touser 接收用户openId
* @param template_id 模板Id
* @param url url 调用方需要编码
* @param topcolor topcolor 调用方需要编码
* @param data 模板参数,传过来的是json串 调用方需要编码
* { "first": { "value":"恭喜你购买成功!", "color":"173177"},
* "keynote1":{ "value":"巧克力", "color":"173177"},
* "keynote2": { "value":"39.8元", "color":"173177"},
* "keynote3": { "value":"2014年9月16日", "color":"173177"},
* "remark":{ "value":"欢迎再次购买!", "color":"173177"}}
* @return
*/
@RequestMapping(value="sendMsg",produces = "application/json; charset=utf-8")
public String sendMsg(String touser,String template_id,String url,String topcolor,String data){
if(Strings.isNullOrEmpty(data)||Strings.isNullOrEmpty(touser)||Strings.isNullOrEmpty(template_id)){
return formatJson(1,"参数错误,请检查参数是否正确!");
}
try {
logger.info("模板消息接收参数(解码后):"+data);
data = URLDecoder.decode(data, "UTF-8");
logger.info("模板消息接收参数(解码后):"+data);
url = url==null?"":URLDecoder.decode(url, "UTF-8");
topcolor = topcolor==null?"":URLDecoder.decode(topcolor, "UTF-8");
} catch (UnsupportedEncodingException e) {
return formatJson(1,"解析参数异常,请检查data,topcolor,url参数");
}
JSONObject obj = null;
try {
obj = JSON.parseObject(data);
} catch (Exception e) {
logger.info("将data转换成json异常,"+e.getMessage());
return formatJson(1,"解析参数异常,请检查data是否为标准的JOSN串");
}
TemplateMsg templateMsg = new TemplateMsg();
templateMsg.touser = touser;
templateMsg.data = obj;
templateMsg.template_id = template_id;
if(!Strings.isNullOrEmpty(url)){
templateMsg.url = url;
}
if(!Strings.isNullOrEmpty(topcolor)){
templateMsg.topcolor = topcolor;
}
logger.info("接收模板消息:"+templateMsg.toString());
SendTemplateMsgResponse sendTemplateMsgResponse = templateMessageService.sendMsg(templateMsg);
if(sendTemplateMsgResponse == null){
return formatJson(1,"发送消息异常!");
}
if(sendTemplateMsgResponse.errcode == 0){//发送成功
return "{\"code\":\"0\",\"result\":\"发送成功\",\"msgid\":\""+sendTemplateMsgResponse.msgid+"\"}";
}else{
return formatJson(1,sendTemplateMsgResponse.errmsg);
}
}
service:
public interface TemplateMessageService {
public SendTemplateMsgResponse sendMsg(TemplateMsg templateMsg);
}
serviceImpl:
public class TemplateMessageServiceImpl implements TemplateMessageService {
@Override
public SendTemplateMsgResponse sendMsg(TemplateMsg templateMsg) {
SendTemplateMsgResponse sendTemplateMsgResponse = null;
try {
// https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
//将这里修改为自己调用服务的方式
sendTemplateMsgResponse = Http.post(
"cgi-bin/message/template/send", templateMsg,
SendTemplateMsgResponse.class);
} catch (Exception e) {
logger.debug("Send Template Message Exception:" + e.getMessage());
}
return sendTemplateMsgResponse;
}
}
model:
public class SendTemplateMsgResponse extends BaseResponse{
public String msgid;
public int errcode = 0;
public String errmsg;
@Override
public String toString() {
return "SendTemplateMsgResponse [msgid=" + msgid + ", errcode="
+ errcode + ", errmsg=" + errmsg + "]";
}
}
public class TemplateMsg {
public String touser;
public String template_id;
public String url;
public String topcolor;
public JSONObject data;
}
相关推荐
主要介绍了java实现微信公众平台发送模板消息的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
以订单推送为例,主要为大家详细介绍了java实现微信公众号发送模版消息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
springboot实现微信模板消息推送,包含微信端代码。简单封装,方便二次开发!
java代码实现用户操作微信小程序端,后台发送模板消息
我自己实现的java 微信发送模板信息的工具类,用面向对象的思想解决了微信模板的json提交要求,所以分享了这个资源,我很乐意和大家交流。 使用方法 一行代码,解决 MsgTemplate.sendNewMsg("toUserId", ...
微信模板消息推送,客服消息推送,图文推送,授权,获取token,获取用资料,获取openid,里面代码都在一个地方;代码都是线上可以用的东西,不懂的可以来问我,
canal搭建消息发送平台发送微信模板消息 canal搭建消息发送平台发送微信模板消息
今天我们给大家分享一个使用微信消息模板每日定时推送早安问候语和天气预报的功能,学会了,块给你女朋友安排上吧 功能点: 1、微信公众平台申请账号及微信开放接口的调用。 2、百度地图天气API接口的调用。 3、...
自己整理的微信小程序发送服务通知,希望对大家有帮助.互相学习,JAVA SpringMVC+Mybatis
微信模板需要与服务器进行数据交换,实现登录注册、消息发送接收、好友列表加载等功能。这通常涉及到网络请求库的使用,如Retrofit、OkHttp等。同时,JSON解析库(如Gson或Jackson)用于将服务器返回的JSON数据转换...
【描述】这个项目是一个实现利用Swoole扩展构建的微信模板消息发送服务,它使用了队列来处理发送任务,提高了系统性能并确保消息的可靠传输。通过这种方式,即使在高并发的情况下,也能有效地分发和处理微信模板消息...
微信模版消息发送实例,需要先配置微信模版,其他参数自己获取!
而"仿微信聊天"则意味着该应用包含了消息发送、接收、显示、群聊、好友管理等微信的核心功能,这需要对网络通信、数据存储、用户界面设计等有深入理解。 在描述中提到,“前端,整个前端与微信1比1比例仿做”,这...
微信公众号模板消息推送SpringBoot定时任务版本-VxMessage
- 发送模板消息:向用户发送通知或确认信息。 - 用户支付:集成微信支付功能,处理订单支付流程。 - 分享功能:处理小程序页面的分享行为,设置分享内容。 - 数据分析:通过微信接口获取用户行为数据,进行业务...
主要介绍了微信公众平台 发送模板消息(Java接口开发),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在企业微信API中,向指定用户推送消息是实现企业内部沟通和信息传递的重要功能。这一过程涉及到了几个关键步骤和技术细节,以下将详细介绍这个过程: 首先,我们需要了解**企业微信的accs_token**。accs_token是...
5、根据openid发送模板/客服消息 6、微信支付:微信获取统一下单包/接收支付通知 7、监听用户消息和点击按钮事件 8、下载图片资源 9、获取前台微信js接口需要的jsapi_ticket 如果报错是因为缺少相应jar包,请根据类...
消息通知对于某些应用是非常有用的,APP发送消息通知基本是没有限制的,而微信小程序是通过微信的模板消息通知实现的,微信模板消息目前来看还是通知非常有效,不存在垃圾信息过多的问题,还可以通过点击消息直接进 ...
微信公众号接口调用 java demo, maven工程, 包含获得微信 AccessToken, 获得微信用户信息, 微信公众号用于调用微信JS接口的临时票据, 微信分享, 发送模板消息等