在调用微信小程序内容安全校验接口时,发现无论提交任何内容,都一直返回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