Skip to content

Commit d14ff05

Browse files
shuiyihan12boris.bao
authored and
boris.bao
committedMar 23, 2024
🎨 binarywang#3231 【小程序】内容安全服务和安全风控服务合并为小程序安全服务WxMaSecurityService
1 parent 6515515 commit d14ff05

9 files changed

+70
-142
lines changed
 

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

-27
This file was deleted.

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

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package cn.binarywang.wx.miniapp.api;
22

33
import cn.binarywang.wx.miniapp.bean.WxMaMediaAsyncCheckResult;
4+
import cn.binarywang.wx.miniapp.bean.safety.request.WxMaUserSafetyRiskRankRequest;
5+
import cn.binarywang.wx.miniapp.bean.safety.response.WxMaUserSafetyRiskRankResponse;
46
import cn.binarywang.wx.miniapp.bean.security.WxMaMediaSecCheckCheckRequest;
57
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
68
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
@@ -10,13 +12,13 @@
1012

1113
/**
1214
* <pre>
13-
* 内容安全相关接口.
15+
* 小程序安全相关接口.
1416
* Created by Binary Wang on 2018/11/24.
1517
* </pre>
1618
*
1719
* @author <a href="https://github.com/binarywang">Binary Wang</a>
1820
*/
19-
public interface WxMaSecCheckService {
21+
public interface WxMaSecurityService {
2022
/**
2123
* <pre>
2224
* 校验一张图片是否含有违法违规内容.
@@ -109,4 +111,15 @@ public interface WxMaSecCheckService {
109111

110112
WxMaMediaAsyncCheckResult mediaCheckAsync(WxMaMediaSecCheckCheckRequest request) throws WxErrorException;
111113

114+
/**
115+
* <pre>
116+
* 根据提交的用户信息数据获取用户的安全等级,无需用户授权
117+
* 文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/safety-control-capability/riskControl.getUserRiskRank.html
118+
* </pre>
119+
*
120+
* @param wxMaUserSafetyRiskRankRequest 获取用户安全等级请求
121+
* @throws WxErrorException 通用异常
122+
*/
123+
WxMaUserSafetyRiskRankResponse getUserRiskRank(WxMaUserSafetyRiskRankRequest wxMaUserSafetyRiskRankRequest) throws WxErrorException;
124+
112125
}

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

+2-10
Original file line numberDiff line numberDiff line change
@@ -305,11 +305,11 @@ public interface WxMaService extends WxService {
305305
WxMaRunService getRunService();
306306

307307
/**
308-
* 返回内容安全相关接口服务对象.
308+
* 返回小程序安全相关接口服务对象.
309309
*
310310
* @return WxMaShareService sec check service
311311
*/
312-
WxMaSecCheckService getSecCheckService();
312+
WxMaSecurityService getSecurityService();
313313

314314
/**
315315
* 返回插件相关接口服务对象.
@@ -486,14 +486,6 @@ public interface WxMaService extends WxService {
486486
*/
487487
WxMaImmediateDeliveryService getWxMaImmediateDeliveryService();
488488

489-
490-
/**
491-
* 小程序安全风控相关接口服务
492-
*
493-
* @return safetyRiskControl service
494-
*/
495-
WxMaSafetyRiskControlService getSafetyRiskControlService();
496-
497489
/**
498490
* 分享人接口
499491
*

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

+3-9
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
5757
private final WxMaJsapiService jsapiService = new WxMaJsapiServiceImpl(this);
5858
private final WxMaShareService shareService = new WxMaShareServiceImpl(this);
5959
private final WxMaRunService runService = new WxMaRunServiceImpl(this);
60-
private final WxMaSecCheckService secCheckService = new WxMaSecCheckServiceImpl(this);
60+
private final WxMaSecurityService securityService = new WxMaSecurityServiceImpl(this);
6161
private final WxMaPluginService pluginService = new WxMaPluginServiceImpl(this);
6262
private final WxMaExpressService expressService = new WxMaExpressServiceImpl(this);
6363
private final WxMaSubscribeService subscribeService = new WxMaSubscribeServiceImpl(this);
@@ -81,7 +81,6 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
8181
private final WxMaDeviceSubscribeService deviceSubscribeService = new WxMaDeviceSubscribeServiceImpl(this);
8282
private final WxMaMarketingService marketingService = new WxMaMarketingServiceImpl(this);
8383
private final WxMaImmediateDeliveryService immediateDeliveryService = new WxMaImmediateDeliveryServiceImpl(this);
84-
private final WxMaSafetyRiskControlService safetyRiskControlService = new WxMaSafetyRiskControlServiceImpl(this);
8584
private final WxMaShopSharerService shopSharerService = new WxMaShopSharerServiceImpl(this);
8685
private final WxMaProductService productService = new WxMaProductServiceImpl(this);
8786
private final WxMaProductOrderService productOrderService = new WxMaProductOrderServiceImpl(this);
@@ -522,8 +521,8 @@ public WxMaRunService getRunService() {
522521
}
523522

524523
@Override
525-
public WxMaSecCheckService getSecCheckService() {
526-
return this.secCheckService;
524+
public WxMaSecurityService getSecurityService() {
525+
return this.securityService;
527526
}
528527

529528
@Override
@@ -641,11 +640,6 @@ public WxMaImmediateDeliveryService getWxMaImmediateDeliveryService() {
641640
return this.immediateDeliveryService;
642641
}
643642

644-
@Override
645-
public WxMaSafetyRiskControlService getSafetyRiskControlService() {
646-
return this.safetyRiskControlService;
647-
}
648-
649643
@Override
650644
public WxMaShopSharerService getShopSharerService() {
651645
return this.shopSharerService;

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

-36
This file was deleted.

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

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package cn.binarywang.wx.miniapp.api.impl;
22

3-
import cn.binarywang.wx.miniapp.api.WxMaSecCheckService;
3+
import cn.binarywang.wx.miniapp.api.WxMaSecurityService;
44
import cn.binarywang.wx.miniapp.api.WxMaService;
55
import cn.binarywang.wx.miniapp.bean.WxMaMediaAsyncCheckResult;
6+
import cn.binarywang.wx.miniapp.bean.safety.request.WxMaUserSafetyRiskRankRequest;
7+
import cn.binarywang.wx.miniapp.bean.safety.response.WxMaUserSafetyRiskRankResponse;
68
import cn.binarywang.wx.miniapp.bean.security.WxMaMediaSecCheckCheckRequest;
79
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
810
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
911
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
1012
import com.google.gson.JsonObject;
1113
import lombok.RequiredArgsConstructor;
14+
import me.chanjar.weixin.common.api.WxConsts;
1215
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
1316
import me.chanjar.weixin.common.enums.WxType;
1417
import me.chanjar.weixin.common.error.WxError;
@@ -26,14 +29,14 @@
2629

2730
/**
2831
* <pre>
29-
*
32+
* 小程序安全接口
3033
* Created by Binary Wang on 2018/11/24.
3134
* </pre>
3235
*
3336
* @author <a href="https://github.com/binarywang">Binary Wang</a>
3437
*/
3538
@RequiredArgsConstructor
36-
public class WxMaSecCheckServiceImpl implements WxMaSecCheckService {
39+
public class WxMaSecurityServiceImpl implements WxMaSecurityService {
3740
private final WxMaService service;
3841

3942
@Override
@@ -91,6 +94,16 @@ public WxMaMediaAsyncCheckResult mediaCheckAsync(WxMaMediaSecCheckCheckRequest r
9194
return WxMaGsonBuilder.create().fromJson(response,WxMaMediaAsyncCheckResult.class);
9295
}
9396

97+
@Override
98+
public WxMaUserSafetyRiskRankResponse getUserRiskRank(WxMaUserSafetyRiskRankRequest wxMaUserSafetyRiskRankRequest) throws WxErrorException {
99+
String responseContent = this.service.post(GET_USER_RISK_RANK, wxMaUserSafetyRiskRankRequest.toJson());
100+
JsonObject jsonObject = GsonParser.parse(responseContent);
101+
if (jsonObject.get(WxConsts.ERR_CODE).getAsInt() != 0) {
102+
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
103+
}
104+
return WxMaUserSafetyRiskRankResponse.fromJson(responseContent);
105+
}
106+
94107
private void parseErrorResponse(String response) throws WxErrorException {
95108
JsonObject jsonObject = GsonParser.parse(response);
96109
if (jsonObject.get(ERR_CODE).getAsInt() != 0) {

‎weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java

+8-11
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,18 @@ public interface ShortLink {
351351
String GENERATE_SHORT_LINK_URL = "https://api.weixin.qq.com/wxa/genwxashortlink";
352352
}
353353

354+
/**
355+
* 小程序安全
356+
*/
354357
public interface SecCheck {
355358
String IMG_SEC_CHECK_URL = "https://api.weixin.qq.com/wxa/img_sec_check";
356359
String MSG_SEC_CHECK_URL = "https://api.weixin.qq.com/wxa/msg_sec_check";
357360
String MEDIA_CHECK_ASYNC_URL = "https://api.weixin.qq.com/wxa/media_check_async";
361+
362+
/**
363+
* 获取用户安全等级
364+
*/
365+
String GET_USER_RISK_RANK = "https://api.weixin.qq.com/wxa/getuserriskrank";
358366
}
359367

360368
public interface Setting {
@@ -753,17 +761,6 @@ interface Cancel {
753761

754762
}
755763

756-
757-
/**
758-
* 安全风控
759-
*/
760-
interface SafetyRiskControl {
761-
/**
762-
* 获取用户的安全等级,无需用户授权
763-
*/
764-
String GET_USER_RISK_RANK = "https://api.weixin.qq.com/wxa/getuserriskrank";
765-
}
766-
767764
}
768765

769766
/**

‎weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaSafetyRiskControlServiceImplTest.java

-34
This file was deleted.

‎weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaSecCheckServiceImplTest.java ‎weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaSecurityServiceImplTest.java

+26-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
package cn.binarywang.wx.miniapp.api.impl;
22

3-
import java.io.File;
4-
3+
import cn.binarywang.wx.miniapp.api.WxMaService;
4+
import cn.binarywang.wx.miniapp.bean.safety.request.WxMaUserSafetyRiskRankRequest;
5+
import cn.binarywang.wx.miniapp.bean.safety.response.WxMaUserSafetyRiskRankResponse;
56
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
67
import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
7-
import org.testng.annotations.*;
8-
9-
import cn.binarywang.wx.miniapp.api.WxMaService;
108
import cn.binarywang.wx.miniapp.test.ApiTestModule;
119
import com.google.inject.Inject;
1210
import me.chanjar.weixin.common.error.WxErrorException;
11+
import org.testng.annotations.DataProvider;
12+
import org.testng.annotations.Guice;
13+
import org.testng.annotations.Test;
14+
15+
import java.io.File;
1316

1417
import static org.assertj.core.api.Assertions.assertThat;
15-
import static org.testng.Assert.*;
18+
import static org.testng.Assert.assertTrue;
19+
import static org.testng.AssertJUnit.assertNotNull;
1620

1721
/**
1822
* <pre>
@@ -24,13 +28,13 @@
2428
*/
2529
@Test
2630
@Guice(modules = ApiTestModule.class)
27-
public class WxMaSecCheckServiceImplTest {
31+
public class WxMaSecurityServiceImplTest {
2832
@Inject
2933
private WxMaService wxService;
3034

3135
@Test
3236
public void testCheckImage() throws WxErrorException {
33-
boolean result = this.wxService.getSecCheckService()
37+
boolean result = this.wxService.getSecurityService()
3438
.checkImage(new File(ClassLoader.getSystemResource("tmp.png").getFile()));
3539
assertTrue(result);
3640
}
@@ -47,7 +51,7 @@ public Object[][] secData() {
4751

4852
@Test(dataProvider = "secData")
4953
public void testCheckMessage(String msg, boolean result) throws WxErrorException {
50-
assertThat(this.wxService.getSecCheckService()
54+
assertThat(this.wxService.getSecurityService()
5155
.checkMessage(msg))
5256
.isEqualTo(result);
5357
}
@@ -60,7 +64,19 @@ public void testCheckMessage2(String msg, boolean result) throws WxErrorExceptio
6064
.version("2")
6165
.openid("xxx")
6266
.build();
63-
WxMaMsgSecCheckCheckResponse response = this.wxService.getSecCheckService().checkMessage(request);
67+
WxMaMsgSecCheckCheckResponse response = this.wxService.getSecurityService().checkMessage(request);
6468
assertThat(response).isNotNull();
6569
}
70+
71+
@Test
72+
public void testGetUserRiskRank() throws WxErrorException {
73+
WxMaUserSafetyRiskRankRequest wxMaUserSafetyRiskRankRequest = WxMaUserSafetyRiskRankRequest.builder()
74+
.appid("")
75+
.openid("")
76+
.scene(1)
77+
.isTest(true)
78+
.build();
79+
WxMaUserSafetyRiskRankResponse wxMaUserSafetyRiskRankResponse = this.wxService.getSecurityService().getUserRiskRank(wxMaUserSafetyRiskRankRequest);
80+
assertNotNull(wxMaUserSafetyRiskRankResponse);
81+
}
6682
}

0 commit comments

Comments
 (0)
Please sign in to comment.