微信小程序调用内容安全校验接口,无论任何内容都返回ok的解决方案

592次阅读

在调用微信小程序内容安全校验接口时,发现无论提交任何内容,都一直返回ok

{"errcode":0,"errmsg":""}

后来才发现,原来是提交的参数的问题。使用post方法的json参数,会使请求中的content为unicode编码。我们需要通过手动拼接字符串和设置headers的方式,这样才能保证提交的内容是正常的。

以下是微信小程序调用内容安全校验接口,无论任何内容都返回ok的解决方法:

PHP代码:

    /**
     * 内容安全审核
     */  
    public function msgSecCheck($content)
    {    
        $access_token = getAccessToken();//自定义函数,请自行编写
        $url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=".$access_token;
        $params = '{"content": "'.$content.'"}';//一直返回ok,就是因为这里出现了问题
        $res = httpCurl($url,$params,'POST',array("Content-Type: application/json"));//自定义curl请求函数,请自行编写
        $res = json_decode($res,true);
        if($res['errcode'] == 0){
            return true;
        }else{
            return false;
        }
    }

Python代码(来自微信开发者社区):

def msg_sec(msg):
    url = 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token={}'.format(get_access_token())
    data = '{"content": "' + msg + '"}'
    headers = {'Content-Type': 'application/json'}
    res = requests.post(url, data=data.encode('utf-8'), headers=headers)
    return True if res.json().get('errcode') == 0 else False