测试企微通知

This commit is contained in:
shuo.wang
2025-02-11 16:31:50 +08:00
parent 8b485f1840
commit ca23967be2
6 changed files with 160 additions and 13 deletions

View File

@@ -192,4 +192,7 @@ public class CommonConstants {
public static final String ONLINE_ENV = "online";
public static final String AMOUNT_KEY = "amount:{0}:{1}";
public static final String WX_SELF_AUTH_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
}

View File

@@ -0,0 +1,89 @@
package com.cool.store.enums;
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.cool.store.constants.CommonConstants;
import lombok.extern.slf4j.Slf4j;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Map;
import java.util.StringJoiner;
/**
* @Author: WangShuo
* @Date: 2025/02/11/16:06
* @Version 1.0
* @注释:
*/
@Slf4j
public enum QWMessageEnum {
MESSAGE_1("common","您有一个待办任务,请尽快处理。", ""),
;
private String target;
private String title;
private String content;
QWMessageEnum(String target,String title, String content) {
this.target = target;
this.title = title;
this.content = content;
}
public String getTitle() {
return title;
}
public String getTarget() {
return target;
}
public String getContent() {
return content;
}
public String getContent(Map<String, String> paramMap) {
String result = this.content;
for (String key : paramMap.keySet()) {
result = result.replace("${" + key + "}", paramMap.get(key));
}
return result;
}
public String getQWMessageUrl(String qywxUrl2, String corpId, Map<String, String> paramMap) {
if (StringUtils.isAnyBlank(qywxUrl2, corpId) ) {
return "";
}
String messageUrl = null;
try {
String noticeUrl = String.format(qywxUrl2, corpId, "qw_private_zx",this.target);
String finalUrl = buildUrlWithParams(noticeUrl, paramMap);
log.info("finalUrl:{}", finalUrl);
messageUrl = URLEncoder.encode(finalUrl, "UTF-8");
messageUrl = String.format(CommonConstants.WX_SELF_AUTH_URL, corpId, messageUrl);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return messageUrl;
}
/**
* 拼接参数
* @param url
* @param paramMap
* @return
*/
public static String buildUrlWithParams(String url, Map<String, String> paramMap) {
// 检查 URL 是否已经包含参数
StringJoiner urlWithParams = new StringJoiner("&", url.contains("?") ? "&" : "?", "");
// 遍历 Map拼接参数
for (Map.Entry<String, String> entry : paramMap.entrySet()) {
urlWithParams.add(entry.getKey() + "=" + entry.getValue());
}
// 返回拼接后的 URL
return url + urlWithParams.toString();
}
}