liusheng
2026-10-10 0afac42fb2e9d6e5291304dd0044ce3042b45d2b
ruoyi-message/src/main/java/com/ruoyi/message/wechat/support/WxMpUtils.java
ÎļþÃû´Ó ruoyi-common/src/main/java/com/ruoyi/common/utils/WxMpUtils.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.ruoyi.common.utils;
package com.ruoyi.message.wechat.support;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.exception.WxErrorException;
@@ -8,13 +8,18 @@
import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.springframework.stereotype.Component;
import org.apache.commons.lang3.StringUtils;
import java.util.Map;
/**
 * å¾®ä¿¡å…¬ä¼—号消息发送工具类
 * æ”¯æŒï¼šæ–‡æœ¬å®¢æœæ¶ˆæ¯ã€æ¨¡æ¿æ¶ˆæ¯
 * å¾®ä¿¡å…¬ä¼—号消息发送工具类(微信官方 SDK é€šé“)。
 * <p>
 * æ”¯æŒï¼šæ–‡æœ¬å®¢æœæ¶ˆæ¯ã€æ¨¡æ¿æ¶ˆæ¯ã€‚
 * <p>
 * è¿ç§»è¯´æ˜Žï¼šåŽŸç±»ä¸º {@code com.ruoyi.common.utils.WxMpUtils},行为未改动,仅换包。
 * çŽ°çŠ¶ï¼šå…¨é¡¹ç›®<b>没有业务调用点</b>(只有 {@code SysLoginController} ä¸Ž
 * {@code WeChatService} é‡Œçš„æ³¨é‡Š/测试代码),属于「已具备能力但未接入」的通道。
 */
@Slf4j
public class WxMpUtils {
@@ -40,8 +45,8 @@
    // -------------------------------------------------------------------------
    /**
     * å‘指定 openid çš„用户发送文本客服消息
     * æ³¨æ„ï¼šç”¨æˆ·éœ€åœ¨48小时内与公众号有过交互才可发送
     * å‘指定 openid çš„用户发送文本客服消息。
     * æ³¨æ„ï¼šç”¨æˆ·éœ€åœ¨48小时内与公众号有过交互才可发送。
     *
     * @param openid  ç”¨æˆ·çš„微信 openid
     * @param content æ¶ˆæ¯å†…容
@@ -78,7 +83,6 @@
     * @param templateId æ¨¡æ¿æ¶ˆæ¯ ID(在微信公众平台配置)
     * @param url        ç‚¹å‡»æ¶ˆæ¯åŽçš„跳转 URL,不需要跳转可传 null
     * @param dataMap    æ¨¡æ¿æ•°æ®ï¼Œkey ä¸ºæ¨¡æ¿å­—段名,value ä¸º WxMpTemplateData(含值和颜色)
     *                   ç¤ºä¾‹ï¼š{"first": new WxMpTemplateData("first", "你好", "#173177"), ...}
     * @return å‘送成功返回微信返回的 msgid,失败返回 null
     */
    public String sendTemplateMessage(String openid, String templateId, String url, Map<String, WxMpTemplateData> dataMap) {
@@ -112,13 +116,13 @@
    }
    /**
     * å‘指定 openid çš„用户发送模板消息(简化版,value ä¸è®¾ç½®é¢œè‰²ï¼‰
     * å‘指定 openid çš„用户发送模板消息(简化版,value ç»Ÿä¸€ä½¿ç”¨é»˜è®¤é¢œè‰²ï¼‰
     *
     * @param openid     ç”¨æˆ·çš„微信 openid
     * @param templateId æ¨¡æ¿æ¶ˆæ¯ ID
     * @param url        ç‚¹å‡»æ¶ˆæ¯åŽçš„跳转 URL,不需要跳转可传 null
     * @param dataMap    æ¨¡æ¿æ•°æ®ï¼Œkey ä¸ºæ¨¡æ¿å­—段名,value ä¸ºå­—段显示的文本内容
     *                   ç¤ºä¾‹ï¼š{"first": "你好", "keyword1": "2024-01-01", "remark": "感谢使用"}
     * @param openid       ç”¨æˆ·çš„微信 openid
     * @param templateId   æ¨¡æ¿æ¶ˆæ¯ ID
     * @param url          ç‚¹å‡»æ¶ˆæ¯åŽçš„跳转 URL,不需要跳转可传 null
     * @param dataMap      æ¨¡æ¿æ•°æ®ï¼Œkey ä¸ºæ¨¡æ¿å­—段名,value ä¸ºå­—段显示的文本内容
     * @param defaultColor é»˜è®¤é¢œè‰²
     * @return å‘送成功返回微信返回的 msgid,失败返回 null
     */
    public String sendTemplateMessage(String openid, String templateId, String url, Map<String, String> dataMap, String defaultColor) {