package com.idea.weixinPush; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import org.apache.commons.lang.StringUtils; import java.util.Date; import java.util.HashMap; import java.util.Map; public class WeixinPushUtool { public static String access_token = null; public static Date access_token_time = null; public static final String TOKENURL = "https://api.weixin.qq.com/cgi-bin/token"; public static final String MSGURL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send"; //获取接口调用凭证 public static String getAccessToken(){ String grant_type = "client_credential"; String appid = "wx85a804d3b1e38801"; String secret = "961bb9e9eeab427d436434dcb05656c2"; String result = HttpUtil.get(TOKENURL+"?grant_type="+grant_type+"&appid="+appid+"&secret="+secret); JSONObject jsonObject = JSONUtil.parseObj(result); return jsonObject.get("access_token").toString(); } //发送微信订阅消息 public void sendWXmsg(MsgTempleEnum tem, String userOpenId, String url, MiniprogramStateEnum state, Map data){ if(!useful(access_token, access_token_time)){ access_token = getAccessToken(); access_token_time = new Date(); } System.err.println("access_token——:"+access_token); HashMap paramMap = new HashMap<>(); paramMap.put("access_token", access_token); paramMap.put("touser", userOpenId); paramMap.put("template_id", tem.getValue()); if(StringUtils.isNotBlank(url)) paramMap.put("page", url); System.err.println("数据——:"+JSONUtil.toJsonStr(data)); paramMap.put("data", data); if(null != state) paramMap.put("miniprogram_state", state.getValue()); String result = HttpUtil.post(MSGURL+"?access_token="+access_token, JSONUtil.toJsonStr(paramMap)); System.err.println("发送消息接口返回——:"+result); } //判断参数是否有效 public static boolean useful(String str, Date data){ if(StringUtils.isBlank(str)) return false; if(DateUtil.offsetHour(data, 1).getTime() < new Date().getTime()) return false; return true; } public static void main(String[] args) { getAccessToken(); // System.err.println("getAccessToken_:"+); } }