Skip to content

Commit 95d130d

Browse files
authored
🆕 #2399 【小程序】增加内容安全mediaCheckAsync接口新的实现方法
1 parent 1984b28 commit 95d130d

File tree

3 files changed

+72
-5
lines changed

3 files changed

+72
-5
lines changed

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSecCheckService.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cn.binarywang.wx.miniapp.api;
22

33
import cn.binarywang.wx.miniapp.bean.WxMaMediaAsyncCheckResult;
4+
import cn.binarywang.wx.miniapp.bean.security.WxMaMediaSecCheckCheckRequest;
45
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
56
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
67
import me.chanjar.weixin.common.error.WxErrorException;
@@ -64,7 +65,7 @@ public interface WxMaSecCheckService {
6465
* </pre>
6566
* @param msgRequest
6667
* @return WxMaMsgSecCheckCheckResponse
67-
* @throws WxErrorException
68+
* @throws WxErrorException the wx error exception
6869
*/
6970
WxMaMsgSecCheckCheckResponse checkMessage(WxMaMsgSecCheckCheckRequest msgRequest) throws WxErrorException;
7071

@@ -88,4 +89,25 @@ public interface WxMaSecCheckService {
8889
*/
8990
WxMaMediaAsyncCheckResult mediaCheckAsync(String mediaUrl, int mediaType) throws WxErrorException;
9091

92+
93+
/**
94+
* <pre>
95+
* 异步校验图片/音频是否含有违法违规内容。(新版本接口,主要对request和respone做了参数优化)
96+
* 应用场景举例:
97+
* 语音风险识别:社交类用户发表的语音内容检测;
98+
* 图片智能鉴黄:涉及拍照的工具类应用(如美拍,识图类应用)用户拍照上传检测;电商类商品上架图片检测;媒体类用户文章里的图片检测等;
99+
* 敏感人脸识别:用户头像;媒体类用户文章里的图片检测;社交类用户上传的图片检测等。
100+
* 频率限制:
101+
* 单个 appId 调用上限为 2000 次/分钟,200,000 次/天;文件大小限制:单个文件大小不超过10M
102+
* 详情请见:
103+
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.mediaCheckAsync.html
104+
* </pre>
105+
*
106+
* @param medisRequest
107+
* @return wx ma media async check result
108+
* @throws WxErrorException the wx error exception
109+
*/
110+
111+
WxMaMediaAsyncCheckResult mediaCheckAsync(WxMaMediaSecCheckCheckRequest medisRequest) throws WxErrorException;
112+
91113
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSecCheckServiceImpl.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import cn.binarywang.wx.miniapp.api.WxMaSecCheckService;
44
import cn.binarywang.wx.miniapp.api.WxMaService;
55
import cn.binarywang.wx.miniapp.bean.WxMaMediaAsyncCheckResult;
6+
import cn.binarywang.wx.miniapp.bean.security.WxMaMediaSecCheckCheckRequest;
67
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
78
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
89
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
@@ -68,10 +69,7 @@ public boolean checkMessage(String msgString) throws WxErrorException {
6869
@Override
6970
public WxMaMsgSecCheckCheckResponse checkMessage(WxMaMsgSecCheckCheckRequest msgRequest) throws WxErrorException {
7071
String response = this.service.post(MSG_SEC_CHECK_URL, msgRequest);
71-
JsonObject jsonObject = GsonParser.parse(response);
72-
if (jsonObject.get(ERRCODE).getAsInt() != 0) {
73-
throw new WxErrorException(WxError.fromJson(response, WxType.MiniApp));
74-
}
72+
parseErrorResponse(response);
7573
return WxMaGsonBuilder.create().fromJson(response, WxMaMsgSecCheckCheckResponse.class);
7674
}
7775

@@ -86,4 +84,17 @@ public WxMaMediaAsyncCheckResult mediaCheckAsync(String mediaUrl, int mediaType)
8684
.fromJson(this.service.post(MEDIA_CHECK_ASYNC_URL, jsonObject.toString()));
8785
}
8886

87+
@Override
88+
public WxMaMediaAsyncCheckResult mediaCheckAsync(WxMaMediaSecCheckCheckRequest medisRequest) throws WxErrorException {
89+
String response = this.service.post(MEDIA_CHECK_ASYNC_URL,medisRequest);
90+
parseErrorResponse(response);
91+
return WxMaGsonBuilder.create().fromJson(response,WxMaMediaAsyncCheckResult.class);
92+
}
93+
94+
private void parseErrorResponse(String response) throws WxErrorException {
95+
JsonObject jsonObject = GsonParser.parse(response);
96+
if (jsonObject.get(ERRCODE).getAsInt() != 0) {
97+
throw new WxErrorException(WxError.fromJson(response, WxType.MiniApp));
98+
}
99+
}
89100
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package cn.binarywang.wx.miniapp.bean.security;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
7+
import java.io.Serializable;
8+
9+
/**
10+
* @author dingxw
11+
* @date 2021/11/18 20:27
12+
*/
13+
@Data
14+
@Builder
15+
public class WxMaMediaSecCheckCheckRequest implements Serializable {
16+
17+
private static final long serialVersionUID = -3947838615379224577L;
18+
19+
@SerializedName("media_url")
20+
private String mediaUrl;
21+
22+
@SerializedName("media_type")
23+
private Integer mediaType;
24+
25+
@SerializedName("version")
26+
private Integer version;
27+
28+
@SerializedName("openid")
29+
private String openid;
30+
31+
@SerializedName("scene")
32+
private Integer scene;
33+
34+
}

0 commit comments

Comments
 (0)