微信小程序文本、图片内容违规信息校验

首先放微信官方文档介绍:微信官方违规内容校验。翻到下面的 健康运营指引>>内容安全解决方案,里面有包含文字内容、图片等信息校验,通过调用微信官方接口审核,保证了运营内容的绿色健康。 

强调说明

1.微信调用校验接口需要在后台调用,后台调用返回一个成功或者失败的状态码给小程序,小程序端不可直接调用,因为为保障账号安全不可使用此域名地址(https://api.weixin.qq.com),所以在小程序端调用,发布线上后发现功能无法使用。

2.开发环境:mysql、java、linux server、微信开发工具

接口功能说明:

1.微信小程序端

//文本内容校验
wx.request({
    url: 'https://www.xxxxx.com/auth/meditation/getToken',
    method: 'GET',
    success: res => {
        var access_token = res.data.access_token;
        let token = access_token;
        wx.request({
            method: 'POST',
            url: 'https://www.xxxxx.com/auth/meditation/illegalTextVerife',
            data: {
                content: content,
                access_token: access_token
            },
            header: {
                'content-type': 'application/x-www-form-urlencoded'
            },
            success(data) {
                if (data.data.errcode !== 87014) { // 合格
                    //开始写入
                 
                    //结束写入
                } else {
                    wx.showToast({
                        title: '內容違規',
                    })
                }
            }
        })
    },
    fail() {
        console.log(res);
        return;
    }
})


//图片内容校验
wx.request({
    url: 'https://www.xxxxx.com/auth/meditation/getToken',
    method: 'GET',
    success: res => {
        var access_token = res.data.access_token;
        let token = access_token;
        //开始写入
        let filepaths = tempFilePaths[0]; //图片,如果存在多张,循环该方法即可,tempFilePaths自己定义保存图片的变量
        //检测图片
        wx.uploadFile({
            url: 'https://www.xxxxx.com/auth/meditation/illegalImgVerife',
            method: 'POST',
            filePath: filepaths[0],
            name: 'file',
            header: {
                'Content-Type': 'application/octet-stream' //一定要设置header头部信息’Content-Type’: ‘application/octet-stream’
            },
            formData: {
                filepaths: filepaths,
                token: token
            },
            success: function (data) {
                   if (data.data.errcode !== 87014) { // 没有违规
                      
                } else {
                    wx.showToast({
                        title: '內容違規',
                    })
                }
            }

        })
    },
    fail() {
        console.log(res);
        return;
    }
})

2.JAVA后台文本内容校验接口请求

第一步获取 access_token ,成功获取再进行校验接口请求

/**
	 * 获取token
	 * 
	 * @param userInput
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/getToken")
	public JSONObject getToken() {
		String grant_type = "client_credential";
		String appid = "xxxxxxx";//可在微信公众平台查看
		String secret = "xxxxxxx";//可在微信公众平台查看

		// 请求参数
		String params = "grant_type=" + grant_type + "&appid=" + appid + "&secret=" + secret;
		// 发送请求
		String sr = Request.sendGet("https://api.weixin.qq.com/cgi-bin/token", params);
		// 解析相应内容(转换成json对象)
		JSONObject json = JSONObject.fromObject(sr);
		return json;

	}

第二步 请求内容校验接口

/**
	 * 违规内容校验
	 * 
	 * @param content
	 * @param access_token
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/illegalTextVerife")
	public JSONObject illegalTextVerife(String content, String access_token) {
		JSONObject data = new JSONObject();
		data.put("content", content);
		RestTemplate restTemplate = new RestTemplate();
		String url = ("https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" + access_token);
		String response = restTemplate.postForObject(url, data, String.class);
		JSONObject json = JSONObject.fromObject(response);
		return json;
	}

返回数据:

3.JAVA后台图片违规信息校验即可请求

第一步获取 access_token ,成功获取再进行校验接口请求(请求之前都是要获取token)

/**
	 * 获取token
	 * 
	 * @param userInput
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/getToken")
	public JSONObject getToken() {
		String grant_type = "client_credential";
		String appid = "xxxxxxx";//可在微信公众平台查看
		String secret = "xxxxxxx";//可在微信公众平台查看

		// 请求参数
		String params = "grant_type=" + grant_type + "&appid=" + appid + "&secret=" + secret;
		// 发送请求
		String sr = Request.sendGet("https://api.weixin.qq.com/cgi-bin/token", params);
		// 解析相应内容(转换成json对象)
		JSONObject json = JSONObject.fromObject(sr);
		return json;

	}

第二步请求校验图片接口

/**
	 * 违规图片校验
	 * 
	 * @param file
	 * @param token
	 * @return
	 */
	@RequestMapping(value = "/illegalImgVerife", method = { RequestMethod.POST })
	@ResponseBody
	public JSONObject illegalImgVerife(@RequestParam(value = "file") MultipartFile file, String token, FileInfo fileInfo,
			MeditationRecord record) {
		JSONObject json = new JSONObject();
		try {
			String url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=" + token;
			String result = uploadFile(url, file);//自己定义一个POST请求的方法
			json = JSONObject.fromObject(result);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json;
	}

返回数据同上,微信小程序校验功能就完成了。

说明:微信小程序正式环境必须使用SSL安全格式的地址(https),如果使用linux服务器,可以使用nginx反向代理配置映射域名与端口

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值