WxXcxSecurityMsgSecCheckRequest.java 2.53 KB
Newer Older
1 2 3
package com.yanzuoguang.wxxcx.security;

import com.alibaba.fastjson.TypeReference;
xianjun's avatar
xianjun committed
4
import com.yanzuoguang.util.helper.CheckerHelper;
5 6 7 8 9
import com.yanzuoguang.util.helper.HttpHelper;
import com.yanzuoguang.util.helper.JsonHelper;
import com.yanzuoguang.wxxcx.base.*;

/**
10 11
 * 文本内容安全识别 转换
 * 检查一段文本是否含有违法违规内容
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
 * <p>
 * 1.0版本在2021年9月1日停止更新,请尽快更新至2.0
 * 应用场景举例:
 * 用户个人资料违规文字检测;
 * 媒体新闻类用户发表文章,评论内容检测;
 * 游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。 频率限制:单个 appId 调用上限为 4000 次/分钟,2,000,000 次/天*
 *
 * @author 李贤军
 */
public class WxXcxSecurityMsgSecCheckRequest implements WxXcxRequestUrl, WxXcxRequestUrlPara, WxXcxRequestPostFormData {

    private final WxXcxConfig wxXcxConfig;
    private final WxXcxRequest wxXcxRequest;
    private final WxXcxAccessToken accessToken;
    private final WxXcxSecurityMsgSecCheckReq req;

    public WxXcxSecurityMsgSecCheckRequest(WxXcxConfig wxXcxConfig, WxXcxRequest wxXcxRequest, WxXcxAccessToken accessToken, WxXcxSecurityMsgSecCheckReq req) {
        this.wxXcxConfig = wxXcxConfig;
        this.wxXcxRequest = wxXcxRequest;
        this.accessToken = accessToken;
        this.req = req;
    }

    @Override
    public String getUrl() {
37
        return wxXcxConfig.getBaseUrl() + wxXcxConfig.getSecurityMsgSecCheckUrl() + "?" + this.getUrlPara();
38 39 40 41 42 43 44 45 46 47 48 49 50
    }

    @Override
    public String getUrlPara() {
        return HttpHelper.getUrlParameter(accessToken);
    }

    @Override
    public String getPost() {
        return HttpHelper.getUrlParameter(req);
    }

    public WxXcxSecurityMsgSecCheckRes getResponse() {
xianjun's avatar
xianjun committed
51
        checkParam(req);
52 53 54 55 56 57 58
        return this.wxXcxRequest.request(this, response -> {
            WxXcxSecurityMsgSecCheckRes ret = JsonHelper.deserialize(response, new TypeReference<WxXcxSecurityMsgSecCheckRes>() {
            });
            WxXcxAssert.assertBaseError(ret);
            return ret;
        });
    }
xianjun's avatar
xianjun committed
59 60 61 62 63 64 65 66 67

    private void checkParam(WxXcxSecurityMsgSecCheckReq req) {
        CheckerHelper.newInstance().notBlankCheck(WxXcxAccessTokenField.FIELD_ACCESS_TOKEN, req.getAccess_token())
                .notBlankCheck("content", req.getContent())
                .notBlankCheck("version", req.getVersion())
                .notBlankCheck("openid", req.getOpenid())
                .notBlankCheck("scene", req.getScene())
                .checkException();
    }
68
}