Дополнительный контент:
1, микро-канал документ https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.imgSecCheck.html
2, PHP5.4, функция json_encode, новый варианты параметров, JSON_UNESCAPED_UNICODE, китайский не кодирует содержимое выводится
Первая часть: [Текст] нелегальная контрольная сумма
Файл: индекс
/ **
* микро канал - [текст] нарушения обнаружены
* Mixed @return
* /
функция общественного test_wx_check ()
{
$ PARAM = 'Shending муху происходит киноварь;
. $ Тип = 1;
$ Результат = $ this-> wx_check ($ пары, тип $);
эхо '<предварительно>'; var_dump ($ Result); Выход ();
}
Часть II: [Image] проверка проверка соответствия
文件: индекс
а,表单部分
<форма действия = метод "upload_file.php" = "пост"
ENCTYPE = "многочастному / форм-данных">
<метка для = "файл"> Имя файла: </ метка>
<входной тип =» файл»имя = "uploadImg" ID = "uploadImg"/>
<br />
<входной тип = "отправить" имя = "Отправить" значение = "Отправить"/>
</ form> б,后端部分
/ **
*微信-违规【】图片检测
* @return смешанная
* /
функция test_wx_check общественности ()
{
$ пары = $ _FILE [ 'uploadImg'];
$ Тип = 1;
$ результат = $ этом-> wx_check ($ пары, $ типа);
эхо '<предварительно>'; var_dump ($ результат); выход ();
}
Часть III: код раздела ядра
Файл: индекс
/ **
* микро канал - [текст нарушения / обнаружение изображения]
* @param $ пары
* Смешанный @return
* /
общественная функция wx_check ($ пары, $ = 1 типа.)
{
// Проверка параметры, прямой возврат пустой к ложным
IF ($ парам || типа $ !!) {
возвращение к ложным;
}
// процесс сортировки параметр
IF (тип == $ 1.) {
$ Данные = [ 'Содержание' => $ парам];
} на остальное ЕСЛИ ($ Тип 2 ==) {
$ Data = [ 'Медиа' => $ парам];
}
// Получить access_token
$ this-> нагрузки -> - Сервис ( 'order_service');
$ access_token = $ this-> order_service-> get_access_token () ;
// access_token небыть пустым
IF ($ access_token!) {
возвращение ложным;
}
// запрос адреса
$ this-> load-> конфигурации ( 'ДИКТ / dict_wx_check');
$ конфиг = $ this-> config-> Пункт ( 'wx_check_config');
?. URL = $ ($ тип == $ конфигурации 1 [ ? access_token = '. 'CONTENT_URL'] :. $ конфиг [ 'img_url']) $ в access_token;
// запрос данных
$ результат = $ this-> curl_post_weixin (URL $, $ данных);
результаты // инверсия JSON
возврата из json_decode ($ результата, правда);
}
/ **
* данные Curl POST в режиме микро-канала
* @param строка $ URL - адрес запроса
* @param данные передачи массива $ данных
* @return Mixed
* @author LiuDongrang
* @time 2019/05 / . 19
* /
Частная функция curl_post_weixin (URL $, $ Data)
{
IF (URL && $ COUNT ($ Data)) {
$ Заголовки = [ 'Content-Type: применение / JSON'];
* @author LiuDongrang
* @time 2019/07/05
* /
$ ч = curl_init ();
curl_setopt ($ ч, CURLOPT_HTTPHEADER, $ заголовки); //关键点
curl_setopt ($ ч, CURLOPT_URL, $ URL);
curl_setopt ($ ч, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ ч, CURLOPT_POST, 1);
curl_setopt ($ ч, CURLOPT_POSTFIELDS, json_encode ($ данные, JSON_UNESCAPED_UNICODE )); // 【*关键点】
$ Рез = curl_exec ($ ч);
curl_close ($ ч);
вернуть $ Рез;
}
} 文件: order_service
/ **
*获取лексема
функция общественного take_access_token ()
{
$ access_token = $ this-> get_access_token ();
//获取存入Redis
$ this-> load-> библиотека ( 'dbredis');
$ this-> dbredis-> набор ( 'redis_access_token', $ access_token);
вернуть $ this-> dbredis-> Get ( 'redis_access_token');
}
/ **
*获取access_token值
* @return строка $ access_token
* @author LiuDongrang
* @time 2019/05/19
* /
общественная функция get_access_token ()
{
$ AppConfig = [
'app_id' => 'wxsdfdsfsdfsdfdfdefc',
'секрет' => 'ecsdfsdfdfuyttrrlo9887jfa7d29106'
];
$ URL = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appConfig [' APP_ID '].' & секрет = '$ AppConfig [' тайна '];
curl_setopt ($ ч, CURLOPT_URL, $ URL); // получить URL данных
curl_setopt ($ CH, CURLOPT_RETURNTRANSFER ,. 1); // получить информацию , возвращаемую в виде файла поток
curl_setopt ($ ч, CURLOPT_SSL_VERIFYPEER, ложной ); // пропуска проверки сертификата
curl_setopt ($ ч, CURLOPT_SSL_VERIFYHOST, ложные ); // проверить сертификат шифрования SSL является
$ = Вывод json_decode (curl_exec (CH $));
$ $ output- в access_token => access_token;
curl_close (CH $) ;
возврат $ в access_token;
} файла: ДИКТ / dict_wx_check
/ **
* [микро канала нарушение графической контрольной суммы] - конфигурационный файл
* /
'CONTENT_URL' => 'https://api.weixin.qq.com/wxa/msg_sec_check' ,
'img_url' => 'https://api.weixin.qq.com/wxa/img_sec_check',
];
/ ** графический адрес запроса проверки * /
$ конфиг [ 'wx_check_config'знак равно
Заключенный:
проверка графического контента (юриспруденция, включая правительство) не имеет каких - либо трудностей, однако, есть необходимость обратить внимание!
Изобразите эту проверку, требования к микро-канал параметров изображения в конечном формате СМИ форм-данных, таким образом, свойства формы должны иметь ENCTYPE = «многослойную / форм-данных », в противном случае, тест будет сообщено , когда «неправильный формат» подсказки, Помните!
Проверьте этот текст, есть ключевой момент, то есть, содержание контента, преобразованный в формат JSON для времени передачи, json_encode этой функции, необходимо добавить «JSON_UNESCAPED_UNICODE» этот параметр, в противном случае, эти чувствительные слова просто не соответствуют! Почему это? Поскольку json_encode в борьбе с китайцами, китайцы будут закодированы в подобный «\ U ****» нечитаемый формат , так что микро-канал приемного конца куча таких персонажей, конечно, проверить чувствительные слова вверх! И JSON_UNESCAPED_UNICODE этот параметр, добавленная функция json_encode, все китайские иероглифы, выводится , так что вы можете отфильтровать чувствительное содержание грядет!