PHP содержание микро-канал [Безопасность] «текст, изображение» контрольный код

Дополнительный контент:

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, все китайские иероглифы, выводится , так что вы можете отфильтровать чувствительное содержание грядет!
Опубликовано 59 оригинальные статьи · вона похвала 2 · Просмотров 5582

рекомендация

отblog.csdn.net/LDR1109/article/details/101221187
рекомендация