微信小程序内容检测接口对接--php实现

微信小程序内容检测接口对接

在发布小程序前,微信官方会对小程序进行审核。假如开发的小程序允许用户发布自定义内容时,微信官方要求应用发布方对其应用的用户发布的内容进行检测,否则无法通过微信官方的审核。


本博文参考的其他博文链接

PHP之 微信【内容安全】“文字、图片” 校验代码.
小程序文字图片内容安全接口开发-PHP

代码实现

<?php
/**
 * 微信小程序内容安全检测类(图片/文字敏感信息检测)		
 */
class AppletContentCheck
{
	private $access_token; //小程序全局唯一后台接口调用凭据

	public function __construct($appid, $secret) {
		// 获取 access_token
		$data = $this->getAccessToken($appid, $secret);
		// 给属性赋值
		$this->access_token = $data['access_token'];
	}
	
	/**
	 * 获取小程序接口调用凭据 access_token
	 * @param  string $appid  小程序唯一凭证,即 AppID
	 * @param  string $secret 小程序唯一凭证密钥,即 AppSecret
	 * @return array  $data   小程序接口返回数据
	 */
	public function getAccessToken($appid, $secret) {
        // 目标地址
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
        // 1.初始化一个cURL会话
        $ch = curl_init();
        // 2.设置url和相应的选项
        curl_setopt($ch, CURLOPT_URL, $url); 				    //设置url
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 	//获取的信息以文件流(json)的形式返回
        curl_setopt($ch, CURLOPT_HEADER, FALSE); 			//不将头文件的信息作为数据流输出
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);	//不验证对等(SSL)证书
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);   	    //不检查公用名是否存在,是否与提供的主机名匹配
        // 3.执行cURL会话
        $json = curl_exec($ch);
        // 4.关闭cURL会话,释放系统资源
        curl_close($ch);
        // 5.对返回的json格式字符串进行解码
        $data= json_decode($json,TRUE);

        return $data;
	}

	/**
	 * 检查文字是否包含敏感信息
	 * @param   string $msg  要检测的文本内容,长度不超过 500KB
	 * @return  array  $info 提示信息
	 */
	public function msgCheck($msg) {
		$url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=".$this->access_token;
		$array = [
			"content" => $msg
		];
		$info = $this->postURL($url,$array);
		return $info;
	}

	/**
	 * 校验一张图片是否含有违法违规内容
	 * @param   array  $file  要检测的图片内容,大小不超过 750px * 1334px
	 * @return  array  $info  提示信息
	 */
	public function imgCheck($file) {
		$url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=".$this->access_token;
		$array = [
			"media" =>  new \CURLFile($file['tmp_name'],$file['type'],$file['name']),
        ];
		$info = $this->postURL($url,$array);
		return $info;
	}

	/**
	 * cURL通过POST方式请求小程序内容安全接口(HTTPS调用)
	 * @param  string  $url  接口的网络地址
	 * @param  array   $data 发送数据
	 * @return array   $res  接口返回数据
	 */
	public function postURL($url, $data) {
		// 检查一段文本是否含有违法违规内容
		if (array_key_exists("content", $data)) {
			$data = json_encode($data,JSON_UNESCAPED_UNICODE);
		}
		$header = ["Content-type:multipart/form-data;charset='utf-8'","Accept:application/json"];
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
        curl_setopt($ch, CURLOPT_POST, TRUE);
        curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $output = curl_exec($ch);
        $res = json_decode($output,TRUE);
        curl_close($ch);
        return $res;
	}
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值