首先需要申请公众号测试号
创建完测试号什么都不用填写直接创建消息模板即可
消息模板格式如下 参数需以{{开头,以.DATA}}结尾 (请注意 模板在2023年5月有变动可能与这个格式不符合)
创建完成后我们需要获取access token
直接去测试接口平台通过id和密码获取即可
拿到这个即可
这里我们用apipost 测一下 请求地址哪里找呢?
这个平台往下滑
点击模板消息即可获取请求url
请求接口文档 按照这个格式去请求接口
这里需要用到各种参数解释与来源
"touser": "opBhi55Ygd9Wyli2pVQ3wp111W3wLUU" 关注公众号的微信openid
template_id 消息模板id 下图获取
url 可为空 可按照文档填写
topcolor 颜色 自己定义吧
具体data格式如下
效果图
java 实现 sendWechatSms 是封装的http请求
//测试推送消息
public static void main(String[] args) {
JSONObject param = new JSONObject();
JSONObject dataParam = new JSONObject();
param.put("touser", "opBhi55Ygd9Wyli2pVQ3wpW3wLUU");
param.put("template_id", "mEyN19X0YsBcVjBVRDt0gkdtsc101UE4oGrxdc6aMCE");
param.put("url", "");
Map<String,String> title= new HashMap<>();
Map<String,String> content= new HashMap<>();
title.put("value","标题啊!!");
title.put("color","#173177");
content.put("value","内容啊啊啊!!");
content.put("color","#173177");
dataParam.put("title", title);
dataParam.put("content", content);
param.put("data", dataParam);
log.info("微信消息入参{}",param);
sendWechatSms(param,"wx2cbc03752c7f1b3e","cfd8c0a128e6e84f96394bd8eb6b515e");
}
public static void sendWechatSms( JSONObject param,String appid,String secret) {
if (StringUtils.isNotBlank(param.toString())) {
log.info("微信消息推送开始");
//获取access_token
String url = WechatConfig.access_token + "?grant_type=client_credential&appid=" + appid + "&secret=" + secret;
String info = HttpUtil.getHttp(url);
JSONObject jsonObject = JSONObject.parseObject(info);
if (null != jsonObject.get("access_token")) {
String accessToken = jsonObject.get("access_token").toString();
log.info("微信通知,消息推送参数{}", param);
try {
String sendResult = HttpUtil.postData(WechatConfig.sendmsg_url + "?access_token=" + accessToken, param.toJSONString());
log.info("消息结果{}", sendResult);
JSONObject resultJson = JSON.parseObject(sendResult);
if (Integer.parseInt(resultJson.get("errcode").toString()) == 0) {
log.info("消息推送成功");
}
} catch (Exception e) {
e.printStackTrace();
}
}
log.info("微信消息推送结束");
}
}