模板消息
工具类:
package com.XXXXX.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
/**
*
* @Date: 2021/12/17 0017 13:38
*/
@Slf4j
public class WxUtils {
//APP ID 公众号
private static final String APP_ID="XXXXXXX";
//APP 密钥 公众号
private static final String APP_SECRET="XXXXXXX";
//根据code获取token和openid 请求地址
private static final String WX_GET_TOKEN_GZH_URL="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+APP_ID+"&secret="+APP_SECRET+"&grant_type=authorization_code&code=";
//获取access_token
private static final String WX_GET_ACCESS_TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+APP_ID+"&secret="+APP_SECRET;
//微信公众号发送模板消息
private static final String WX_POST_SEND_TEMPLATE_URL="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
/**
* 获取access_token,公众号的全局唯一接口调用凭据
* @return
*/
public static String getAccessToken(){
String result=HttpClientUtil.doGet(WX_GET_ACCESS_TOKEN_URL);
JSONObject wxObject=JSON.parseObject(result);
return String.valueOf(wxObject.get("access_token"));
}
/**
* 微信公众号发送模板消息
* @param touser 接收者id
* @param template_id 模板id
* @param url 回调地址
* @param topcolor 字体样式
* @param data 发送的内容JSON
* @return
*/
public static String wxSendMsg(String touser, String template_id, String url, String topcolor, JSON data) throws IOException {
net.sf.json.JSONObject json = new net.sf.json.JSONObject();
json.accumulate("touser",touser);
json.accumulate("template_id",template_id);
json.accumulate("url",url);
json.accumulate("topcolor",topcolor);
json.accumulate("data",data);
String msg = json.toString();
String result = HttpClientUtil.sendPost(WX_POST_SEND_TEMPLATE_URL+getAccessToken(), msg);
System.out.println(result);
return result;
}
/**
* 根据code拿取openid
* @param code
* @return
*/
public static String getOpenId(String code){
String result=HttpClientUtil.doGet(WX_GET_TOKEN_GZH_URL+code);
JSONObject wxObject=JSON.parseObject(result);
return String.valueOf(wxObject.get("openid"));
}
}