From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 20 五月 2025 23:48:08 +0800 Subject: [PATCH] 修改文件上传类型限制 --- springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 104 insertions(+), 9 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java index 77fb20f..7ead3bb 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java @@ -1,14 +1,21 @@ package com.panzhihua.applets.weixin; -import javax.annotation.Resource; - -import org.springframework.stereotype.Service; - -import com.panzhihua.applets.config.WxMaConfiguration; - import cn.binarywang.wx.miniapp.api.WxMaSecCheckService; +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest; +import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse; +import cn.binarywang.wx.miniapp.config.WxMaConfig; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.panzhihua.applets.config.WxMaConfiguration; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -23,14 +30,102 @@ private WxMaConfiguration wxMaConfiguration; public boolean checkMessage(String msg) { - WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService("").getSecCheckService(); + WxMaService maService = wxMaConfiguration.getMaService(""); + + WxMaConfig wxMaConfig = maService.getWxMaConfig(); + WxMaMsgSecCheckCheckRequest wxMaMsgSecCheckCheckRequest = WxMaMsgSecCheckCheckRequest.builder().version("2").openid(wxMaConfig.getAppid()).scene(2).content(msg).build(); + WxMaSecCheckService wxMaSecCheckService = maService.getSecCheckService(); try { - boolean b = wxMaSecCheckService.checkMessage(msg); - return b; + WxMaMsgSecCheckCheckResponse wxMaMsgSecCheckCheckResponse = wxMaSecCheckService.checkMessage(wxMaMsgSecCheckCheckRequest); + wxMaMsgSecCheckCheckResponse.getResult(); + return true; } catch (WxErrorException e) { log.error("微信审核文字内容出错【{}】", e.getMessage()); e.printStackTrace(); } return false; } + + public String checkMessageBy(String msg, String openId, String appId) { + WxMaMsgSecCheckCheckRequest wxMaMsgSecCheckCheckRequest = WxMaMsgSecCheckCheckRequest.builder().version("2").openid(openId).scene(2).content(msg).build(); + WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService(appId).getSecCheckService(); + try { + WxMaMsgSecCheckCheckResponse result = wxMaSecCheckService.checkMessage(wxMaMsgSecCheckCheckRequest); + return this.handleResult(result); + } catch (WxErrorException e) { + log.error("微信审核文字内容出错【{}】", e.getMessage()); + e.printStackTrace(); + } + return null; + } + + public boolean checkImageBy(String url, String appId) { + String[] imageUrlArr = url.split(","); + for (String imageUrl : imageUrlArr) { + WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService(appId).getSecCheckService(); + try { + return wxMaSecCheckService.checkImage(imageUrl); + } catch (WxErrorException e) { + log.error("微信审核图片内容出错【{}】", e.getMessage()); + e.printStackTrace(); + } + } + return true; + } + + /** + * 处理微信返回的违规结果 + * + * @param result + * @return + */ + private String handleResult(WxMaMsgSecCheckCheckResponse result) { + List<WxMaMsgSecCheckCheckResponse.DetailBean> detailBeanList = result.getDetail(); + if (null != detailBeanList && detailBeanList.size() > 0) { + List<String> resultMsgs = new ArrayList<>(); + for (WxMaMsgSecCheckCheckResponse.DetailBean detailBean : detailBeanList) { + if (0 == detailBean.getErrcode()) { + String label = detailBean.getLabel(); + if (StrUtil.isNotBlank(label)) { + switch (label) { + case "100": + continue; + case "10001": + resultMsgs.add("广告"); + continue; + case "20001": + resultMsgs.add("时政"); + continue; + case "20002": + resultMsgs.add("色情"); + continue; + case "20003": + resultMsgs.add("辱骂"); + continue; + case "20006": + resultMsgs.add("违法犯罪"); + continue; + case "20008": + resultMsgs.add("欺诈"); + continue; + case "20012": + resultMsgs.add("低俗"); + continue; + case "20013": + resultMsgs.add("版权"); + continue; + case "21000": + resultMsgs.add("其他"); + } + } + + } + } + if (CollUtil.isNotEmpty(resultMsgs)) { + return StringUtils.join(resultMsgs, ","); + } + } + return null; + } + } -- Gitblit v1.7.1