1 WeChatMessageUtil
企业微信消息工具类。
package com.util;
/**
* 企业微信消息工具类
*/
public class WeChatMessageUtil {
/**
* 获取文本消息JSON数据
*
* @param userId 用户ID(可多个,多个用逗号隔开)
* @param content 消息内容
* @param agentId 应用ID
* @return
*/
public static String getTextMessageJson(String userId, String content, String agentId) {
//构造消息体
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append(" \"touser\":\"" + userId + "\",");
sb.append(" \"msgtype\":\"text\",");
sb.append(" \"agentid\":\"" + agentId + "\",");
sb.append(" \"text\":{");
sb.append(" \"content\":\"" + content + "\"");
sb.append(" },");
sb.append(" \"safe\":\"0\"");
sb.append("}");
return sb.toString();
}
/**
* 获取文本卡片消息JSON数据
*
* @param userId 用户ID(可多个,多个用逗号隔开)
* @param title 标题
* @param content 消息内容
* @param agentId 应用ID
* @param url 跳转链接
* @param btnTxt 按钮内容
* @return
*/
public static String getTextCardMessageJson(String userId, String title, String content, String agentId, String url
, String btnTxt) {
//构造消息体
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append(" \"touser\":\"" + userId + "\",");
sb.append(" \"msgtype\":\"textcard\",");
sb.append(" \"agentid\":\"" + agentId + "\",");
sb.append(" \"textcard\" : {");
sb.append(" \"title\" : \"" + title + "\",");
sb.append(" \"description\" : \"" + content + "\",");
sb.append(" \"url\" : \"" + url + "\",");
sb.append(" \"btntxt\":\"" + btnTxt + "\"");
sb.append(" }");
sb.append(" \"safe\":\"1\"");
sb.append("}");
return sb.toString();
}
}
2 文本消息
2.1 调试代码
/**
* 发送文本消息
*
* @return
*/
@GetMapping("/sendTextMessage")
public String sendTextMessage() {
//初始化token
String token = weChatMessageService.getAccessToken();
String phone = "15573967198";
//得到userId
String userId = weChatMessageService.getUserId(token, phone);
String content = userId + ",你好";
//构造消息体
String message = WeChatMessageUtil.getTextMessageJson(userId, content, weChatMessageService.getAgentId());
//发送消息
return weChatMessageService.sendMessage(token, message);
}
2.2 调试结果
3 文本卡片
3.1 调试代码
/**
* 发送文本卡片消息
*
* @return
*/
@GetMapping("/sendTextCardMessage")
public String sendTextCardMessage() {
//初始化token
String token = weChatMessageService.getAccessToken();
String phone = "15573967198";
//得到userId
String userId = weChatMessageService.getUserId(token, phone);
String content = userId + ",你好";
String url = "https://blog.csdn.net/qq_38974638";
//构造消息体
String message = WeChatMessageUtil.getTextCardMessageJson(userId, "通知", content, weChatMessageService.getAgentId(), url, "详情");
//发送消息
return weChatMessageService.sendMessage(token, message);
}
3.2 最终效果图
注:
(1)企业微信的消息推送配置请查看以下博客。
(2)weChatMessageService源码请查看以下博客。