package com.panzhihua.common.utlis; import java.math.BigDecimal; import java.util.*; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.constants.WxSubscribeConstants; import com.panzhihua.common.model.dtos.wx.TemplateParam; import com.panzhihua.common.model.dtos.wx.WxSubscribeDTO; import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO; import com.panzhihua.common.model.vos.community.reserve.FiveCount; import lombok.extern.slf4j.Slf4j; @Slf4j public class WxUtil { // 客服消息推送地址 public final static String kf_url = "https://api.weixin.qq.com/cgi-bin/message/custom/send"; public static String sendKfLinkMessage(String openid, String url, String thumbUrl, String access_token) throws Exception { Map map_content = new HashMap<>(); map_content.put("title", "社区福利一分购"); map_content.put("description", "点击参与社区一分钱抢购活动"); map_content.put("url", url);// 跳转地址 map_content.put("thumb_url", thumbUrl);// 图片地址 Map map = new HashMap<>(); map.put("touser", openid); map.put("msgtype", "link"); map.put("link", map_content); String content = JSON.toJSONString(map); return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content); } public static String sendKfConetntMessage(String openid, String access_token) throws Exception { Map map_content = new HashMap<>(); map_content.put("content", "社区福利一分购"); Map map = new HashMap<>(); map.put("touser", openid); map.put("msgtype", "text"); map.put("text", map_content); String content = JSON.toJSONString(map); return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content); } public static String sendKfImagesMessage(String openid, String access_token, String mediaId) throws Exception { Map map_content = new HashMap<>(); map_content.put("media_id", mediaId); Map map = new HashMap<>(); map.put("touser", openid); map.put("msgtype", "image"); map.put("image", map_content); String content = JSON.toJSONString(map); return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content); } /** * 订阅消息推送 * * @param accessToken * 获取会话token * @return 消息推送结果 */ static void sendSubscribe(String accessToken, WxSubscribeDTO subscribeDTO) throws Exception { String resultString = HttpUtils.wxMessageModeSendUrl(accessToken, subscribeDTO); JSONObject jsonResult = JSON.parseObject(resultString); if (jsonResult != null) { log.info("订阅消息推送返回参数" + jsonResult.toJSONString()); int errorCode = jsonResult.getIntValue("errcode"); String errorMessage = jsonResult.getString("errmsg"); if (errorCode == 0) { log.info("订阅消息推送成功,openId:" + subscribeDTO.getTouser()); } else { log.error( "订阅消息发送失败,错误码:" + errorCode + ",错误信息:" + errorMessage + "用户openid:" + subscribeDTO.getTouser()); } } } /** * 随手拍奖励到账订阅消息推送 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 随手拍活动标题 * @param amount * 奖励金额 * @param remark * 备注说明 */ public static void sendSubscribeJLDZ(String openId, String accessToken, String name, BigDecimal amount, String remark,String templateId) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras = new ArrayList(); paras.add(new TemplateParam("thing1", name));// 活动名称 paras.add(new TemplateParam("amount3", amount.toString()));// 奖励金额 paras.add(new TemplateParam("thing7", remark));// 备注说明 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("随手拍奖励到账订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 活动报名成功订阅消息推送 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 活动名称 * @param address * 活动地址 * @param activityTime * 活动时间 * @param signTime * 报名时间 */ public static void sendSubscribeSQHD(String openId, String accessToken, String name, String address, String activityTime, String signTime) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.BMCG_ID); List paras = new ArrayList(); paras.add(new TemplateParam("thing1", name));// 活动名称 paras.add(new TemplateParam("thing2", address));// 活动地址 paras.add(new TemplateParam("date3", activityTime));// 活动时间 paras.add(new TemplateParam("time8", signTime));// 报名时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("活动报名成功订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 新问卷调查订阅消息通知 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 活动名称 * @param questionnaireName * 问卷名称 */ public static void sendSubscribeDYWJ(String openId, String accessToken, String name, String questionnaireName) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.DYWJ_ID); List paras = new ArrayList(); paras.add(new TemplateParam("thing1", name));// 活动名称 paras.add(new TemplateParam("thing2", questionnaireName));// 问卷名称 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("新问卷调查订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 认证审核订阅消息通知 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 认证内容 * @param applyTime * 申请时间 * @param result * 审核结果 */ public static void sendSubscribeRZSH(String openId, String accessToken, String name, String applyTime, String result,String templateId) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras = new ArrayList(); paras.add(new TemplateParam("thing2", name));// 认证内容 paras.add(new TemplateParam("phrase1", result));// 审核结果 paras.add(new TemplateParam("date3", applyTime));// 申请时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("认证审核订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 随手拍、邻里圈、微心愿、房源审核状态进度通知 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 审核项目 * @param applyTime * 审核状态 * @param result * 审核时间 */ public static void sendSubscribeSHZT(String openId, String accessToken, String name, String applyTime, String result,String templateId) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras = new ArrayList(); paras.add(new TemplateParam("thing1", name));// 审核项目 paras.add(new TemplateParam("phrase2", result));// 审核状态 paras.add(new TemplateParam("time3", applyTime));// 审核时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("审核状态订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 社区活动取消通知 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 活动名称 * @param time * 活动时间 */ public static void sendSubscribeHDQX(String openId, String accessToken, String name, String time,String templateId) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras = new ArrayList(); paras.add(new TemplateParam("thing1", name));// 活动标题 paras.add(new TemplateParam("date2", time));// 活动时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("活动取消订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 留言回复订阅消息通知 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 回复人名称 * @param time * 回复时间 * @param content * 回复内容 */ public static void sendSubscribeLYHF(String openId, String accessToken, String name, String time, String content,String templateId) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras = new ArrayList(); paras.add(new TemplateParam("thing3", content));// 回复内容 paras.add(new TemplateParam("name1", name));// 回复者 paras.add(new TemplateParam("date2", time));// 回复时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 活动变更订阅消息通知 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 活动名称 * @param changeTime * 活动时间变更 * @param changeAddress * 活动地点变更 * @param time * 活动时间 * @param address * 活动地点 */ public static void sendSubscribeHDBG(String openId, String accessToken, String name, String changeTime, String changeAddress, String time, String address,String templateId) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras = new ArrayList(); paras.add(new TemplateParam("thing1", name));// 活动名称 paras.add(new TemplateParam("time2", changeTime));// 活动时间变更 paras.add(new TemplateParam("thing3", changeAddress));// 地址变更 paras.add(new TemplateParam("time5", time));// 活动时间 paras.add(new TemplateParam("thing6", address));// 活动地点 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 活动即将开始订阅消息通知 * * @param openId * 用户openid * @param accessToken * token会话标识 * @param name * 活动名称 * @param time * 活动时间 * @param address * 活动地点 * @param num * 活动参加人数 */ public static void sendSubscribeHDJJKS(String openId, String accessToken, String name, String time, String address, String num,String templateId) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras = new ArrayList(); paras.add(new TemplateParam("thing1", name));// 活动名称 paras.add(new TemplateParam("date2", time));// 活动时间 paras.add(new TemplateParam("number3", num));// 参与人数 paras.add(new TemplateParam("thing4", address));// 活动地点 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error("活动即将开始订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 预约提醒订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param result 预约结果 * @param title 预约主题 * @param name 预约人 * @param time 预约时间 */ public static void sendSubscribeYYTX(String openId, String accessToken, String result, String title, String name,String time,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras=new ArrayList(); paras.add(new TemplateParam("phrase8",result));//预约结果 paras.add(new TemplateParam("thing23",title));//预约主题 paras.add(new TemplateParam("name5",name));//预约人 paras.add(new TemplateParam("date7",time));//预约时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("预约提醒订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 预约提醒订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 */ public static void sendSubscribeTXTZ(String openId, String accessToken, String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras=new ArrayList(); paras.add(new TemplateParam("time2",DateUtils.getCurrentDateStr())); paras.add(new TemplateParam("thing3","请尽快完善返攀报备,填报当前居住地。")); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("预约提醒订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 推送危险人员订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param dangerMember 风险人员 */ public static void sendSubscribeDanger(String openId, String accessToken, ComActAcidDangerMemberVO dangerMember, String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); List paras=new ArrayList(); Integer type = dangerMember.getType(); paras.add(new TemplateParam("thing2", (type == 1 ? "当前风险人员 " : "当前未填住址人员 ") + dangerMember.getName())); paras.add(new TemplateParam("time3", DateUtils.getCurrentDateStr())); paras.add(new TemplateParam("thing1","新冠疫情")); paras.add(new TemplateParam("thing4", type == 1 ? "新增风险人员" : "新增未填住址人员")); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("危险人员订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 推送危险人员订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param fiveCount 统计数据 */ public static void sendSubscribeStatics(String openId, String accessToken, FiveCount fiveCount, String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("/packageB/pages/register/reportingStatistics/reportingStatistics"); List paras=new ArrayList(); paras.add(new TemplateParam("thing2", "报备总数"+fiveCount.getAllCount()+";"+"风险人员"+fiveCount.getDangerCount())); paras.add(new TemplateParam("time3", DateUtils.getDateFormatString(DateUtils.addDay(new Date(),-1),"yyyy-MM-dd")+"0点到24点")); paras.add(new TemplateParam("thing1","新冠疫情")); paras.add(new TemplateParam("thing4", "社区报备数据统计")); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("危险人员订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * uu洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendUuWash(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("packageD/pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("thing1", "上门洗车")); paras.add(new TemplateParam("thing4", phone)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * ws洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendWsWash(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("thing2", "上门洗车")); paras.add(new TemplateParam("thing5", phone)); subscribeDTO.setTemplateParamList(paras); try { log.info(subscribeDTO.toString()); sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * uu洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendUuWash3(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("packageD/pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("thing9", StrUtil.isBlank(washerName) ? "无":washerName)); paras.add(new TemplateParam("phone_number10",StrUtil.isBlank(washerMobile) ? "0":washerMobile)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * ws洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendWsWash3(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("thing9", StrUtil.isBlank(washerName) ? "无":washerName)); paras.add(new TemplateParam("phone_number10",StrUtil.isBlank(washerMobile) ? "0" :washerMobile)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * uu洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendUuWash4(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("packageD/pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("thing4", status)); paras.add(new TemplateParam("thing3", StrUtil.isBlank(washerName) ? "无":washerName)); paras.add(new TemplateParam("thing6",StrUtil.isBlank(washerMobile) ? "无":washerMobile)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * ws洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendWsWash4(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("thing4", status)); paras.add(new TemplateParam("thing3", StrUtil.isBlank(washerName) ? "无":washerName)); paras.add(new TemplateParam("thing6",StrUtil.isBlank(washerMobile) ? "无":washerMobile)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * uu洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendUuWash6(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("packageD/pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("phrase14", status)); paras.add(new TemplateParam("name3", StrUtil.isBlank(washerName) ? "无":washerName)); paras.add(new TemplateParam("thing5",StrUtil.isBlank(washerMobile) ? "无":washerMobile)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * ws洗车订单状态更改 * @param openId * @param accessToken * @param status * @param washerName * @param washerMobile * @param phone * @param templateId */ public static void sendWsWash6(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(templateId); subscribeDTO.setPage("pages/washer/order/index"); List paras=new ArrayList(); paras.add(new TemplateParam("phrase14", status)); paras.add(new TemplateParam("name3", StrUtil.isBlank(washerName) ? "无":washerName)); paras.add(new TemplateParam("thing5",StrUtil.isBlank(washerMobile) ? "无":washerMobile)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error(e.getMessage()); } } /** * 长期订阅模板消息推送 * @param openId * @param accessToken */ public static void sendLongTimeTemplate(String openId, String accessToken, String word,String content,String page) { WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id("5f-xcy4lrWy_0kc5H4dj5bgBM-MwsvTwPApA-u3fqsQ"); subscribeDTO.setPage(page); List paras = new ArrayList(); paras.add(new TemplateParam("thing3", word)); paras.add(new TemplateParam("thing6", content)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken, subscribeDTO); } catch (Exception e) { log.error(e.getMessage()); } } /** * 推送 商家开始配送后 订单配送通知 * @param openId 用户openid * @param accessToken token会话标识 */ public static void sendStartShipping(String openId, String accessToken, String orderNo){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id("ezwzGs3R5DMuKxTyW8xOIQOIsLpW2sS61ZXsfyll7rw"); List paras=new ArrayList(); paras.add(new TemplateParam("character_string2", orderNo)); paras.add(new TemplateParam("phrase5", "配送中")); paras.add(new TemplateParam("thing8","您的订单已开始配送")); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("商家开始配送后订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 推送 商家送达后 用取货通知 * @param openId 用户openid * @param accessToken token会话标识 */ public static void sendService(String openId, String accessToken, String pointName){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id("6RGbNmRrmGNWyeK7UDodYTItNqEnIIdtlgyzeGLI2w8"); List paras=new ArrayList(); paras.add(new TemplateParam("phrase3", "待收货")); paras.add(new TemplateParam("thing7", "您有一个订单已到达自提点,请及时取货")); paras.add(new TemplateParam("thing5",pointName)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("取货通知订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 推送 商家发货后 发货通知 * @param openId 用户openid * @param accessToken token会话标识 */ public static void sendDeliverGoodsNotice(String openId, String accessToken, String logisticsCompany , String logisticsNo, String orderNo,String deliverTime){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id("PuE0cYU9xUW7Y6XpW-wqz4Hlj1w2mnI_LprsUByJnGg"); List paras=new ArrayList(); paras.add(new TemplateParam("thing2", "您有一个订单已发货")); paras.add(new TemplateParam("thing3", logisticsCompany)); paras.add(new TemplateParam("character_string4",logisticsNo)); paras.add(new TemplateParam("character_string5",orderNo)); paras.add(new TemplateParam("time6",deliverTime)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("商家发货后订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 推送 商家处理完退款申请后 订单退款通知 * @param openId 用户openid * @param accessToken token会话标识 */ public static void sendRefundNotice(String openId, String accessToken, String refundNo , String refundAmount, String result){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id("GxFV_Oj1Pri4NnPkvKGPIPJsPryG8M6DW9mTHTbIrjE"); List paras=new ArrayList(); paras.add(new TemplateParam("character_string6", refundNo)); paras.add(new TemplateParam("amount9", refundAmount)); paras.add(new TemplateParam("phrase11",result)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("订单退款通知 订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 推送 新订单提醒 商家收到一个新的订单 * @param openId 用户openid * @param accessToken token会话标识 */ public static void sendNewOrderNotice(String openId, String accessToken, String orderNo , String type, String goodsName,String amount,String orderTime){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id("3EwAKLw2Xe2o-GDnH-NUGa4nNwqPXsn01hBX8Xp2PbU"); List paras=new ArrayList(); paras.add(new TemplateParam("character_string1", orderNo)); paras.add(new TemplateParam("thing5", type)); paras.add(new TemplateParam("thing3",goodsName)); paras.add(new TemplateParam("amount4",amount)); paras.add(new TemplateParam("time2",orderTime)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("新订单提醒 订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 推送 退款申请通知 商家收到一个退款申请 * @param openId 用户openid * @param accessToken token会话标识 */ public static void sendNewRefundOrderNotice(String openId, String accessToken, String refundNo , String refundAmount,String orderTime){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id("3EwAKLw2Xe2o-GDnH-NUGa4nNwqPXsn01hBX8Xp2PbU"); List paras=new ArrayList(); paras.add(new TemplateParam("thing5", "您有一个退款订单")); paras.add(new TemplateParam("character_string2", refundNo)); paras.add(new TemplateParam("amount3",refundAmount)); paras.add(new TemplateParam("time4",orderTime)); subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("退款申请通知 订阅消息推送失败,失败原因:" + e.getMessage()); } } public static void main(String[] args) { WxXCXTempSend util = new WxXCXTempSend(); try { // String openId = "oMIR-5S9rpsWAVUUrNKoVDQbn5Mw";//zj的openid String openId = "oMIR-5dWyNyWCCKMl7-kYzvyHOjs";// lyq的openid String accessToken = util.getAccessToken(); // sendSubscribeHDJJKS(openId,accessToken,"测试活动即将开始标题","2021-08-04 13:00:00","成都市","50");//活动即将开始 // sendSubscribeHDQX(openId,accessToken,"取消活动测试标题","2021-08-04 13:00:00");//活动取消 // sendSubscribeHDBG(openId,accessToken,"活动名称","2021-08-05","活动变更地址","2021-08-06","活动地址");//活动变更 // sendSubscribeRZSH(openId,accessToken,"用户认证审核通知","2021-08-04","通过");//认证审核 // sendSubscribeJLDZ(openId,accessToken,"随手拍活动DDD",BigDecimal.TEN,"用户参加随手拍活动奖励");//奖励到账 // sendSubscribeLYHF(openId,accessToken,"社区管理员","2021-08-04 11:26:20","勇敢牛牛 不怕困难!");//留言回复 // sendSubscribeSHZT(openId,accessToken,"随手拍审核!!","2021-08-04 11:20:00","通过了");//审核状态 } catch (Exception e) { System.out.println("错误错误!!!"); } } }