define('MSG_SEC_CHECK','https://api.weixin.qq.com/wxa/msg_sec_check?');//小程序敏感词检查
define('IMG_SEC_CHECK','https://api.weixin.qq.com/wxa/img_sec_check?');//小程序图片检查
define('OAUTH_TOKEN_URL','https://api.weixin.qq.com/cgi-bin/token?');  //获取授权access_token//检测敏感词
function msg_sec_check($appid,$secret,$content){$web_access_token = get_access_token($appid,$secret);$params = ['access_token' => $web_access_token,];$request_params = to_url_params($params);$url = MSG_SEC_CHECK . $request_params;$data = json_encode(['content'=>$content],JSON_UNESCAPED_UNICODE);//网上看到的基本都是直接让中文给json转义了,实测json转义后无法检测出实际违规内容$result = json_decode(curl_request($url, $data, true));//返回数据自行根据自己需要进行判断return $result;
}//图片检测($media参数格式为['media'=>new \CURLFile()],php5.5以上)
function img_sec_check($appid,$secret,$media){$web_access_token = get_access_token($appid,$secret);$params = ['access_token' => $web_access_token,];$request_params = to_url_params($params);$url = IMG_SEC_CHECK . $request_params;$result = json_decode(curl_request($url, $media, true));//返回数据自行根据自己需要进行判断return $result;
}//获取微信access_token(自行优化一下,可存缓存)
function get_access_token($appid,$secret){$params = ['grant_type' => 'client_credential','appid' => $appid,'secret' => $secret,];$request_params = to_url_params($params);$url = OAUTH_TOKEN_URL . $request_params;$result = json_decode(curl_request($url), true);//返回数据自行根据自己需要进行判断return $result['access_token'];
}//参数处理
function to_url_params($params){$buff = "";foreach ($params as $k => $v) {if ($k != "sign") {$buff .= $k . "=" . $v . "&";}}$buff = trim($buff, "&");return $buff;
}function curl_request($url = '', $postData = '', $options = array()){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);if (!empty($postData)) {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);}curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数if (!empty($options)) {curl_setopt_array($ch, $options);}//https请求 不验证证书和hostcurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$data = curl_exec($ch);curl_close($ch);return $data;
}

使用案例

//敏感词
$appid = "";
$secret = "";
$content = "敏感词";//自己想
$file = "./uploads/images/abc.jpeg";
msg_sec_check($appid,$secret,$content);//图片检测
$media = ['media'=>new \CURLFile(realpath($file),'image/jpeg')];//php>=5.5
$media = ['media'=>'@'.realpath($file)];//php<5.5(未实测,可能缺少mine参数)
img_sec_check($appid,$secret,$media);

php实现微信小程序内容安全接口校验相关推荐

  1. 微信小程序访问WebService接口返回500错误解决过程

    背景:     新手,第一次尝试使用微信小程序访问WebService接口.     使用Microsoft Visual Studio新建了一个WebService项目,发布后,按照常规流程部署到I ...

  2. 微信小程序之获取接口数据展示

    上篇说到获取编辑框文本,没看过去看看. 本片介绍简单的接口数据获取,并且展示,采取模拟数据,拉取数据方式方法.文章最后附上DEMO 本篇暂未考虑美化问题,只看功能.如图: 一.简单介绍 1> w ...

  3. 微信小程序调用支付接口支付(tp5、小程序)

    微信小程序调用支付接口支付 今天记录一下学习的小程序调用微信支付接口 一.先理清一下调起微信支付的整个流程. 1.就是先调用微信的支付统一下单api获取到prepay_id 2.然后后端再将这个pre ...

  4. 微信小程序 内容换行

    微信小程序内容换行不能用<br/> 解决:微信小程序中内容换行不能用<br/>,用\n,并且必须放在<text></text>标签内生效,否则会解析成空 ...

  5. 微信小程序接入第三方接口

    史上最全,最简单微信小程序实现第三方接口 本文以第三方(聚合新闻头条)接口为例. 聚合接口基本上都是免费的.例如,天气查询,新闻.笑话,万年历等. 1.先去聚合官网注册账号 ,然后申请新闻头条接口.如 ...

  6. 微信小程序链接后台接口,进行数据交互

    微信小程序链接后台接口,进行数据交互 新手学微信小程序,设计页面还可以,有没有让进行数据交互的时候就不知道怎么弄了,下面就记录一下我是怎么进行交互的 1.登陆微信小程序平台,进入首页,点击开发设置 2 ...

  7. 微信小程序 直播商品接口 上传图片 300006 goods img upload fail

    微信小程序 直播商品接口 上传图片 300006 goods img upload fail 官方文档:https://developers.weixin.qq.com/miniprogram/dev ...

  8. 微信小程序直播状态接口如何获取

    现如今,小程序直播非常的红火,越来越多的商家开通了微信小程序直播,但是在直播的过程中,偶尔会出现一些小问题,如禁播,异常状态等等,下面小编就来介绍一下微信小程序直播状态接口如何获取. 一.微信小程序直 ...

  9. 微信小程序快递java_java调用微信小程序统一下单接口

    java调用微信小程序统一下单接口 今天项目中对接微信支付这一块,记录一下 这是对接微信支付的开发文档地址 微信支付流程 流程分析: 我们可以看到,前端人员只用给我们一个code,我们通过code去获 ...

最新文章

  1. 华为云发布全新DevOps实践,大幅提升交付效率
  2. 用Spring Boot复刻一款天猫商城,你可以做到!
  3. python笔记22-literal_eval函数处理返回json中的单双引号
  4. Nginx 搭建图片缓存服务器-转
  5. SQL Server 2005中的分区表(四):删除(合并)一个分区
  6. Hbase数据结构+hbase shell基本语法
  7. python groupby用法_Python数据分析黑色星期五-知识点整理
  8. JavaWeb项目开发步骤
  9. Windows下Mysql完全卸载教程
  10. Excel 函数基本应用
  11. 中科院信工所考研经验整理(待更新)
  12. 【转】贾佳亚港中文团队冠军技术分享:最有效的COCO物体分割算法
  13. 遇到程序员不修改bug时怎么办?我教你
  14. 初中数学抽象教学的案例_初中数学教学案例及反思
  15. H2 DataBase入门
  16. JS实现简单的网页文本转语音阅读
  17. python学习 -对象把微信消息撤回后好慌,有了这个你就能看到撤回的消息了(超详解)
  18. 转行程序员日记---2020-10-19【开始加班了】
  19. 天天吃货商城02-首页展示、商品分类、商品推荐、商品搜索、商品评价
  20. 分享127个ASP源码,总有一款适合您

热门文章

  1. 移动机器人调度监控软件全面升级(一)
  2. 【MOT】多目标追踪学习笔记之MOTR
  3. WPS表格打印能缩放到一张纸上?
  4. android 通过当前日期获取这个礼拜的开始时间和结束时间
  5. GoPro数据集下载
  6. STM32F1开发指南笔记38----游戏手柄实验
  7. 破解无线网络密码教程
  8. python+playwright+jinjia2渲染html并截图
  9. 题目: 某学校需要一个能给学领前儿童自动出三个数加减法的算术题的程序,要求在运算过程中只能使用20以内的加减法且不能出现负数,并且未知数可以在等式的任何一位, 如 3 + 4 – 2 = ( ), 8
  10. mysql mof提权原理_mof提权原理及其过程