112 lines
3.2 KiB
PHP
112 lines
3.2 KiB
PHP
|
|
<?php
|
|||
|
|
/**
|
|||
|
|
* 通过企业号消息提示报警
|
|||
|
|
*/
|
|||
|
|
class QySend
|
|||
|
|
{
|
|||
|
|
public $access_token = "";
|
|||
|
|
public $redis = null;
|
|||
|
|
public function __construct($di)
|
|||
|
|
{
|
|||
|
|
$this->redis = $di->get("redis");
|
|||
|
|
$this->access_token = $this->__qy_access_token(QY_CORPID, QY_SECRET);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* POST方式执行页面
|
|||
|
|
*/
|
|||
|
|
function __http_post_request($url, $postArr){
|
|||
|
|
$curl = curl_init();
|
|||
|
|
curl_setopt($curl, CURLOPT_URL, $url);
|
|||
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
|||
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
|
|||
|
|
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
|
|||
|
|
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
|
|||
|
|
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 15);
|
|||
|
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);
|
|||
|
|
curl_setopt($curl, CURLOPT_POST, 1);
|
|||
|
|
curl_setopt($curl, CURLOPT_POSTFIELDS, $postArr);
|
|||
|
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
|||
|
|
$data = curl_exec($curl);
|
|||
|
|
curl_close($curl);
|
|||
|
|
return $data;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取企业号acces_token
|
|||
|
|
* $corpid,$corpsecret为权限组的id和密钥
|
|||
|
|
*/
|
|||
|
|
function __qy_access_token($corpid,$corpsecret)
|
|||
|
|
{
|
|||
|
|
$this->redis->select(REDIS_DB_NUMBER);
|
|||
|
|
$rediskey = 'qy_' . $corpid . '_' . $corpsecret;
|
|||
|
|
$qy_acces_token = $this->redis->get($rediskey);
|
|||
|
|
if(!empty($qy_acces_token)){
|
|||
|
|
return $qy_acces_token;
|
|||
|
|
}else{
|
|||
|
|
$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&corpsecret=$corpsecret";
|
|||
|
|
$info = $this->__https_request($url);
|
|||
|
|
$tokenArr = json_decode($info,true);
|
|||
|
|
$qy_acces_token = $tokenArr['access_token'];
|
|||
|
|
$this->redis->setex($rediskey,7000, $qy_acces_token);
|
|||
|
|
return $qy_acces_token;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* GET方式执行页面
|
|||
|
|
*/
|
|||
|
|
function __https_request($url)
|
|||
|
|
{
|
|||
|
|
$curl = curl_init();
|
|||
|
|
curl_setopt($curl, CURLOPT_URL, $url);
|
|||
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|||
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
|
|||
|
|
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
|
|||
|
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
|||
|
|
$data = curl_exec($curl);
|
|||
|
|
if(curl_errno($curl)){
|
|||
|
|
return 'ERROR '.curl_error($curl);
|
|||
|
|
}
|
|||
|
|
curl_close($curl);
|
|||
|
|
return $data;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* we企业号消息提醒(自定义发送人群)
|
|||
|
|
*/
|
|||
|
|
function send_user_remind($userArr, $content)
|
|||
|
|
{
|
|||
|
|
if(strstr($_SERVER['HTTP_HOST'], 'weapp'))
|
|||
|
|
{
|
|||
|
|
return true;
|
|||
|
|
}elseif(strstr($_SERVER['HTTP_HOST'], '127.0.0.1'))
|
|||
|
|
{
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
if(is_array($userArr)){
|
|||
|
|
$user_str = implode("|", $userArr);
|
|||
|
|
}else{
|
|||
|
|
$user_str = $userArr;
|
|||
|
|
}
|
|||
|
|
$str = '{
|
|||
|
|
"touser": "'.$user_str.'",
|
|||
|
|
"toparty": "",
|
|||
|
|
"totag": "",
|
|||
|
|
"msgtype": "text",
|
|||
|
|
"agentid": '.QY_AGENTID.',
|
|||
|
|
"text": {
|
|||
|
|
"content": "'.$content.'"
|
|||
|
|
},
|
|||
|
|
"safe":0
|
|||
|
|
}';
|
|||
|
|
$url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='.$this->access_token;
|
|||
|
|
return $this->__http_post_request($url, $str);
|
|||
|
|
}
|
|||
|
|
}
|