使用测试公众号可以进行本地调试,线上这个功能仅服务号支持
代码测试说明 完整的代码在文字末尾
前提
accesstoken已获取到,获取到用户的openId
即将接收消息的微信需要关注对应公众号
模板id
模板消息内容配置
{{first.DATA}}
工单情况:{{keynote1.DATA}}
申请日期:{{keynote2.DATA}}
{{remark.DATA}}
代码
public void sendMessage(String openId){
Map<String, Map<String, String>> dataMap= new HashMap<>(16);
Map<String, String> map1 = new HashMap<>(2);
String dateStr=StringUtil.DateTimeToStr(new Date());
map1.put("value", dateStr);
map1.put("color", "#173177");
dataMap.put("keynote2", map1);
Map<String, String> map2 = new HashMap<>(2);
map2.put("value", "我们已经收到了您的请求,马上为您处理...");
map2.put("color", "#173177");
dataMap.put("keynote1", map2);
wechatService.sendMessageAfSubmit(openId, Config.templateId, null, dataMap);
}
public String sendMessageAfSubmit(String openId, String templateId, String url, Map<String, Map<String, String>> dataMap) {
Map<String, Object> wxMap = new HashMap<>(16);
wxMap.put("touser", openId);
wxMap.put("template_id", templateId);
if (null != url) {
wxMap.put("url", url);
}
wxMap.put("data", dataMap);
String res = null;
try {
String data = com.alibaba.fastjson.JSONObject.toJSONString(wxMap);
com.alibaba.fastjson.JSONObject fromObject = com.alibaba.fastjson.JSONObject.parseObject(data);
res = HttpUtil.sendPOSTRequest(Config.WeChatSendMessageUrl + Config.WeChatToken, fromObject, "UTF-8");
logger.info("====> sendMessage openId is " + openId);
logger.info("====> sendMessage data is " + data);
logger.info("====> sendMessage res is " + res);
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
代码