SpringBoot实现微信小程序输入内容安全校验
1.前言
在之前做的中有个生成二维码功能,对输入的内容没有做敏感信息校验被小程序官方封禁了分享能力。因此需要在小程序输入完内容后需要对其内容做敏感信息校验。
2.方案
小程序官方给出文本内容安全识别API。
对于官方API有两种实现方案,第一种通过云函数调用(可参考官网信息)。
第二种通过后台程序调用,小程序再调用后台程序。
由于博主正好在腾讯云有云服务,并且现在小程序云环境是收费模式,所以最终决定通过springboot实现的后台调用程序。
3.实现
通过官网API可以看到要做文本内容安全识别需要调用msgSecCheck。
在调用文本识别接口之前先要获取token需要调用getAccessToken。
token获取代码片段
static Long oldTime = 0L; static String tokenCache = ""; // 过期时间,2h-1m static Long outTime = 7200000L - 60000; public @ResponseBody String getToken(){ Long nowTime = System.currentTimeMillis(); Long cacheTime = nowTime - oldTime; if (oldTime <=0 || cacheTime > outTime){ RestTemplate restTemplate; restTemplate = new RestTemplate(); String json = restTemplate.getForObject(GET_TOKEN, String.class); tokenCache = json.split(""access_token":"")[1].split("","")[0].trim(); oldTime = System.currentTimeMillis(); return tokenCache; }else { return tokenCache; } }
文本安全敏感信息校验源码片段
完整源码
4.小程序端
由于springboot端没有做json数据格式处理,小程序前端使用application/x-www-form-urlencoded模式请求方式进行后台接口请求。
wx.request({ url: https://XXXXXXX/sec/checkMsg, //仅为示例,并非真实的接口地址 header: { content-type: application/x-www-form-urlencoded;charset=utf-8 }, data: { content:txt, }, method: POST, success(res) { debugger; console.log(res.data) if(res.data){ wx.showToast({ title: "输入内容不规范,请重新输入", icon: "none" }); return ; }else{ e.makeCode(txt); } } })
上一篇:
uniapp开发微信小程序-2.页面制作