123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 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<String, Object> data){
- if(!useful(access_token, access_token_time)){
- access_token = getAccessToken();
- access_token_time = new Date();
- }
- System.err.println("access_token——:"+access_token);
- HashMap<String, Object> 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_:"+);
- }
- }
|