Java后端怎么实现微信小程序校验信息
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要讲解了"Java后端怎么实现微信小程序校验信息",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java后端怎么实现微信小程序校验信息"吧!前
千家信息网最后更新 2025年12月03日Java后端怎么实现微信小程序校验信息
这篇文章主要讲解了"Java后端怎么实现微信小程序校验信息",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java后端怎么实现微信小程序校验信息"吧!
前端只需要将图片和内容传过来即可
pom依赖
HttpClient的依赖和json转换的依赖
com.alibaba fastjson 1.2.54 org.apache.httpcomponents httpclient 4.5.10
封装Vo类
用于获取到access_token后进行转换,access_token是什么就不用我多说了吧
public class AccessTokenVO { private String access_token; private Integer expires_in; //记得给get set方法}封装工具类
import com.alibaba.fastjson.JSONObject;import com.itheima.fete.pojo.AccessTokenVO;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.ByteArrayEntity;import org.apache.http.entity.ContentType;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import org.springframework.web.multipart.MultipartFile;import java.io.*;import java.util.*;/** * @author 兮赫 */public class SenInfoCheckUtil { /** * 图片违规检测,对外提供,直接使用 * * @param accessToken * @param file * @return */ public static Boolean imgFilter(String accessToken, MultipartFile file) { String contentType = file.getContentType(); return checkPic(file, accessToken, contentType); } /** * 文本违规检测,对外提供,直接使用 * * @param accessToken * @param content * @return */ public static Boolean cotentFilter(String accessToken, String content) { return checkContent(accessToken, content); } /** * 校验图片是否有敏感信息 * * @param multipartFile * @return */ private static Boolean checkPic(MultipartFile multipartFile, String accessToken, String contentType) { try { CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpResponse response = null; HttpPost request = new HttpPost("https://api.weixin.qq.com/wxa/img_sec_check?access_token=" + accessToken); request.addHeader("Content-Type", "application/octet-stream"); InputStream inputStream = multipartFile.getInputStream(); byte[] byt = new byte[inputStream.available()]; inputStream.read(byt); request.setEntity(new ByteArrayEntity(byt, ContentType.create(contentType))); response = httpclient.execute(request); HttpEntity httpEntity = response.getEntity(); String result = EntityUtils.toString(httpEntity, "UTF-8");// 转成string JSONObject jso = JSONObject.parseObject(result); return getResult(jso); } catch (Exception e) { e.printStackTrace(); return true; } } /** * 校验内容是否有敏感信息 * @param accessToken * @param content * @return */ private static Boolean checkContent(String accessToken, String content) { try { CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpResponse response = null; HttpPost request = new HttpPost("https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" + accessToken); request.addHeader("Content-Type", "application/json"); Map map = new HashMap<>(); map.put("content", content); String body = JSONObject.toJSONString(map); request.setEntity(new StringEntity(body, ContentType.create("text/json", "UTF-8"))); response = httpclient.execute(request); HttpEntity httpEntity = response.getEntity(); String result = EntityUtils.toString(httpEntity, "UTF-8");// 转成string JSONObject jso = JSONObject.parseObject(result); return getResult(jso); } catch (Exception e) { e.printStackTrace(); return true; } } /** * 返回状态信息,可以修改为自己的逻辑 * @param jso * @return */ private static Boolean getResult(JSONObject jso) { Object errcode = jso.get("errcode"); int errCode = (int) errcode; if (errCode == 0) { return true; } else if (errCode == 87014) { return false; } else { return false; } } /** * 获取小程序的 access_token * @return */ public static String getAccessToken() { AccessTokenVO accessTokenVO = null; try { CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpResponse response = null; //改成自己的appid和secret HttpGet request = new HttpGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxbh0594d32gf315&secret=c9864f6e8aafg8313b6d5d608bd6a6b"); request.addHeader("Content-Type", "application/json"); response = httpclient.execute(request); HttpEntity httpEntity = response.getEntity(); String result = EntityUtils.toString(httpEntity, "UTF-8");// 转成string accessTokenVO = JSONObject.parseObject(result, AccessTokenVO.class); //返回token return accessTokenVO.getAccess_token(); } catch (IOException e) { e.printStackTrace(); } return null; }} 编写Controller层
import com.itheima.fete.utils.SenInfoCheckUtil;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;/** * @author 兮赫 * 校验内容是否敏感 */@RestController@RequestMapping("/check")public class CheckController { /** * 校验内容 * @param content * @return * @throws IOException */ @GetMapping("/content/{content}") public Boolean checkContent(@PathVariable String content) { String accessToken = SenInfoCheckUtil.getAccessToken(); return SenInfoCheckUtil.cotentFilter(accessToken, content); } /** * 校验图片 * @param multipartFile * @return */ @PostMapping("/image") public Boolean checkImage(@RequestPart(value = "file") MultipartFile multipartFile){ String accessToken = SenInfoCheckUtil.getAccessToken(); return SenInfoCheckUtil.imgFilter(accessToken, multipartFile); }}感谢各位的阅读,以上就是"Java后端怎么实现微信小程序校验信息"的内容了,经过本文的学习后,相信大家对Java后端怎么实现微信小程序校验信息这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
信息
内容
程序
图片
UTF-8
学习
对外
封装
检测
违规
不用
前端
就是
工具
思路
情况
文本
文章
方法
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
淮安推广网络技术
南通品牌网络技术哪家好
计算机网络技术在现代的应用
软件开发的功能
软件开发中测试的步骤的步骤
一般开发公司有几个服务器
网络安全与信息试题
物联网微信显示无法访问服务器
三棵树软件开发教程
vf数据库转换方法
xp系统数据库服务不能启动
如何做好网络安全
宁波网络安全宣传讲座
一家网店的数据库
sw数据库遗失怎么解决
lol重庆服务器
网络安全知识黑板报资料
服务器安全防护汇报
dos连接服务器
自媒体的网络安全
车辆网络安全
连接服务器后怎么进不去
数据库方框代表什么意思
redis 数据库异步同步
服务器版主机有必要升级系统吗
创造与魔法第5群岛在哪个服务器
数据库表空间加数据文件
互联网科技大会真实视频
数据库映射 类
数据库TD切高斯