微信小程序中使用HTTPS调用自带文本安全内容检测接口 踩坑
最近php写了一个接口使用敏感词检测接口(msg_sec_check) 卡了1天,不管中文传什么内容返回的结果都是验证通过的,
最后多方面测试发现原因是json_encode中文转成Unicode了。
解决这个问题可以在json_encode加上参数JSON_UNESCAPED_UNICODE,禁止将中文转Unicode
// 检查文本内容是否违规的函数
// 发起文本安全检测请求的函数,使用cURL发送POST请求进行文本安全检测
function msgSecCheck($access_token){
// echo('openid' .$openid.'----');
// echo('token' .$access_token.'----');
$content = $_GET['content'];
// 3构建完整的请求URL,将access_token拼接到URL中
$url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" . urlencode($access_token);
// echo($url);
// echo('content' .$title);
// 构建文本安全检测的请求数据
$msgSecCheckData = [
'content' => $content,
// 'openid' => $openid,
// 'version' => 2,
// 'scene' => 1
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($msgSecCheckData, JSON_UNESCAPED_UNICODE));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
if ($response === false) {
http_response_code(500);
$errorMsg = curl_error($ch);
curl_close($ch);
die(json_encode(['error' => 'Text security check failed. Error: ' . $errorMsg]));
}
curl_close($ch);
return json_decode($response, true);
}
如果您的问题还未解决可以联系站长付费协助。
有问题可以加入技术QQ群一起交流学习
本站vip会员 请加入无忧模板网 VIP群(50604020) PS:加入时备注用户名或昵称
普通注册会员或访客 请加入无忧模板网 技术交流群(50604130)
客服微信号:15898888535
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若内容侵犯了原著者的合法权益,可联系站长删除。