微信模板通知JAVA开发
一、登陆公众号,添加模板消息
二、 复制模板ID,写程序
/**
* 预约咨询
*
* @param
* @return ModelAndView
* @throws Exception
* @exception
* @since 1.0.0
*/
@RequestMapping(value = "/appoint")
@ResponseBody
@DateTimeFormat
public Object appoint()
throws Exception {
logBefore(logger, "预约咨询");
Map<String, Object> map = new HashMap<String, Object>();
String result = "0";
PageData pd = new PageData();
pd = this.getPageData();
pd.put("CONSULT_ID", this.get32UUID()); //主键
pd.put("CREATETIME", DateUtil.getTime()); // 创建时间
pd.put("UPDATETIME", DateUtil.getTime()); // 修改时间
String appid=pd.getString("appid");
String NAME=pd.getString("NAME");
String APPOINTTIME=pd.getString("APPOINTTIME");
String[] APPOINT = APPOINTTIME.split(";");
String PHONE=pd.getString("PHONE");
String AGE=pd.getString("AGE");
String SEX=pd.getString("SEX");if(SEX.equals("1"))SEX="女";else SEX="男";
String CONSULTDESC=pd.getString("CONSULTDESC");
try{
consultService.save(pd);
/* 发送通知开始 */
// 根据wxid查询模板id
PageData templatepd = new PageData();
templatepd.put("WEIXINID", "4185af6a4b014a55f938e7daccc");
templatepd.put("TYPE", 2);
templatepd = templateService.findByWxIdAndType(templatepd);
if (templatepd != null) {
wxInterface = this.getWxInterface(appid);
wxMpService = wxInterface.getWxMpService();
List<PageData> pdList = null;
// 查询审核人员
PageData tpd = new PageData();
tpd.put("TEACHERID", pd.getString("TEACHERID"));
List<PageData> teacherList = teacherService.listAll(tpd);
if (null != teacherList && teacherList.size() > 0) {
for (PageData pageData : teacherList) {
if (null == pageData) {
continue;
}
String openidz = pageData.getString("OPENID");
System.out.println("openidz"+openidz);
PageData pdcommon = new PageData();
pdcommon.put("TITLE", "【社区事务通】咨询预约:");
pdcommon.put("keyword1","客户"+NAME+
"\n年龄为:"+AGE+
"\n性别:"+SEX+
"\n预约咨询日期:"+APPOINT[0]+";时间段:"+APPOINT[1]+
"\n请您尽快安排!");
pdcommon.put("keyword2", "联系电话"+PHONE);
pdcommon.put(
"remark","需要的服务:"+CONSULTDESC);
pdcommon.put("url", "");
pdList = TemplateUtils.sendAppointBySub(openidz, "预约导师",
pdcommon, templatepd, wxMpService);
// 保存发送通知记录
}
}
}
/* 发送通知结束 */
result="1";
}catch(Exception e){
}
map.put(FinalUtil.RESULT, result);
return AppUtil.returnObject(new PageData(), map);
}
三、TemplateUtils工具类
/**
* 发送部分信息--预约通知
*
* @param openIds
* @param names
* @param pdcommon
* @param pdtemp
* @param wxMpService
* @return
* @throws Exception
*/
public static List<PageData> sendAppointBySub(String openId, String name,
PageData pdcommon, PageData pdtemp, WxMpService wxMpService)
throws Exception {
List<PageData> pdList = new ArrayList<PageData>();
WxMpTemplateMessage templateMessage = null;
String templateId = pdtemp.getString("TEMPLATEID");
String title = pdcommon.getString("TITLE");
String keyword1 = pdcommon.get("keyword1").toString();
String keyword2 = pdcommon.getString("keyword2");
String remark = pdcommon.getString("remark");
String url = pdcommon.getString("url");
PageData pdret = new PageData();
try {
pdret.put("OPENID", openId);
pdret.put("NAME", name);
pdret.put("CREATETIME", new Date());
templateMessage = WxMpTemplateMessage.builder().toUser(openId)
.templateId(templateId).build();
templateMessage.addWxMpTemplateData(new WxMpTemplateData("first",
title, "#173177"));
templateMessage.addWxMpTemplateData(new WxMpTemplateData(
"keyword1", keyword1, "#173177"));
templateMessage.addWxMpTemplateData(new WxMpTemplateData(
"keyword2", keyword2, "#173177"));
templateMessage.addWxMpTemplateData(new WxMpTemplateData("remark",
remark, "#000000"));
templateMessage.setUrl(url);
wxMpService.getTemplateMsgService()
.sendTemplateMsg(templateMessage);
pdret.put("STATUS", 1);
} catch (WxErrorException e) {
logger.error(e.toString(), e);
pdret.put("STATUS", 2);
}
pdList.add(pdret);
return pdList;
}
}
4、jar包为