小程序脱敏
最近小程序审核一直不通过“小程序内容不符合规则”,经检验是有一些审核时录入的敏感信息,所以加上了过滤敏感信息的操作;
Java后台代码
接口调用凭证(accessToken)可参考官方文档
public class AppletsCheck {
private static final Logger LOGGER = LoggerFactory.getLogger(AppletsCheck.class);
/*
* @description: 校验小程序提交信息是否符合规范
* @Author: Mr_Jkx
* @Date: 2019/7/15 15:41
* 说明:true,含有敏感信息;false:不含有敏感信息
*/
public static boolean contentCheck(String accessToken, String content) {
boolean meets = true;
try {
String GET_ACCESS_TOKEN = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN";
String url = GET_ACCESS_TOKEN.replace("ACCESS_TOKEN", accessToken);
/**发送Https请求到微信*/
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("content", content);
LOGGER.info("-----小程序上传文字校验请求参数:{}" + jsonObject1.toString());
JSONObject retStr = WinxinUtil.doPostStr(url, jsonObject1.toString());
LOGGER.info("-----小程序上传文字校验回执参数:{}" + retStr);
if (!StringUtils.equals("87014", retStr.get("errcode").toString())) {
meets = false;
}
} catch (IOException e) {
e.printStackTrace();
}
return meets;
}
/*
* @description: 校验小程序上传图片是否符合规范
* @Author: Mr_Jkx
* @Date: 2019/7/15 15:41
* 说明:true,含有敏感信息;false:不含有敏感信息
*/
public static boolean imageCheck(String accessToken, MultipartFile file) {
try {
LOGGER.info("-----小程序上传图片校验");
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 = file.getInputStream();
byte[] byt = new byte[inputStream.available()];
inputStream.read(byt);
request.setEntity(new ByteArrayEntity(byt, ContentType.create("image/jpg")));
response = httpclient.execute(request);
HttpEntity httpEntity = response.getEntity();
String result = EntityUtils.toString(httpEntity, "UTF-8");// 转成string
com.alibaba.fastjson.JSONObject jso = com.alibaba.fastjson.JSONObject.parseObject(result);
LOGGER.info("-----小程序上传图片校验回执参数:{}" + jso);
Object errcode = jso.get("errcode");
int errCode = (int) errcode;
if (errCode == 0) {
return false;
} else if (errCode == 87014) {
return true;
}
return false;
} catch (Exception e) {
e.printStackTrace();
LOGGER.info("----------------调用腾讯内容过滤系统出错------------------");
return false;
}
}
}