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实现微信公众号发送模版消息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java代码实现用户操作微信小程序端,后台发送模板消息
我自己实现的java 微信发送模板信息的工具类,用面向对象的思想解决了微信模板的json提交要求,所以分享了这个资源,我很乐意和大家交流。 使用方法 一行代码,解决 MsgTemplate.sendNewMsg("toUserId", ...
canal搭建消息发送平台发送微信模板消息 canal搭建消息发送平台发送微信模板消息
微信模版消息发送实例,需要先配置微信模版,其他参数自己获取!
自己整理的微信小程序发送服务通知,希望对大家有帮助.互相学习,JAVA SpringMVC+Mybatis
今天我们给大家分享一个使用微信消息模板每日定时推送早安问候语和天气预报的功能,学会了,块给你女朋友安排上吧 功能点: 1、微信公众平台申请账号及微信开放接口的调用。 2、百度地图天气API接口的调用。 3、...
主要介绍了微信公众平台 发送模板消息(Java接口开发),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
5、根据openid发送模板/客服消息 6、微信支付:微信获取统一下单包/接收支付通知 7、监听用户消息和点击按钮事件 8、下载图片资源 9、获取前台微信js接口需要的jsapi_ticket 如果报错是因为缺少相应jar包,请根据类...
消息通知对于某些应用是非常有用的,APP发送消息通知基本是没有限制的,而微信小程序是通过微信的模板消息通知实现的,微信模板消息目前来看还是通知非常有效,不存在垃圾信息过多的问题,还可以通过点击消息直接进 ...
微信公众号接口调用 java demo, maven工程, 包含获得微信 AccessToken, 获得微信用户信息, 微信公众号用于调用微信JS接口的临时票据, 微信分享, 发送模板消息等
主要为大家详细介绍了java微信公众号发送消息模板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
给女朋友做的微信公众号消息每日自动推送天气及纪念日通知教程,该教程为github每日自动线上运行版本。本人亲测妹子很喜欢~女孩子都喜欢这种用心做的东西! 1.最新版本 成品 +源码 +消息模板 (需要自己申请 天行 ...
微信公众号发送模板消息
之前兴起的微信定时推送消息给女朋友,一时兴起给女朋友做了一个,两分钟即可上手,注意,本项目不需要正式的公众号,使用微信提供的测试...3. 消息模板博客会提供模板,数据库也有存储的模板,修改成自己需要的即可。
基于Swoole的微信发送模板消息队列服务-Mega-WeChat
微信小程序的消息推送简单的说就是发送一条微信通知给用户,用户点开消息可以查看消息内容,可以链接进入到小程序的指定页面。 微信小程序消息推送需要用户触发动作才能发送消息,比如用户提交订单、支付成功。一次...
订阅消息是微信近期新出的一个能力,用来代替原有的模板消息(原有的模板消息即将下线) 订阅消息的功能较模板消息有所提升,”7天”的限制取消,同时有”一次性”和”永久”订阅.(功能上是这样说的,但是实际开发时发现...