namespace app\index\controller;
class Pushmess
{
private $appId = "**********";
private $appSecret = "**********";
// public function __construct($appId, $appSecret) {
// $this->appId = $appId;
// $this->appSecret = $appSecret;
// }
public function send($openid,$username,$countpunch){
$tokens = $this->getAccessToken(); //获取token
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $tokens;
$params = [
'touser' =>$openid,//接收消息的openid
'template_id' => '',//模板ID
'url' => '', //点击详情后的URL可以动态定义
'data'=>[
'first'=>[
'value'=>'您好!这次是你第次打卡。',
'color'=>'#173177'
],
'keyword1'=>[
'value'=>$username,
'color'=>'#173177'
],
'keyword2'=>[
'value'=>date("Y-m-d H:i", time()),
'color'=>'#173177'
],
'keyword3'=>[
'value'=>'打卡成功',
'color'=>'#173177'
]
// 'remark'=>[
// 'value'=>'打卡成功',
// 'color'=>'#173177'
// ]
]
];
$data = json_encode($params,JSON_UNESCAPED_UNICODE);
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_exec($curl);
curl_close($curl);
}
private function getAccessToken() {
// access_token 应该全局存储与更新,以下代码以写入到文件中做示例
// 如果是企业号用以下URL获取access_token
// $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
$res = json_decode($this->httpGet($url));
$access_token = $res->access_token;
return $access_token;
}
/**
* @Description: curl请求
* @Author: Yang
* @param $url
* @param null $data
* @param string $method
* @param array $header
* @param bool $https
* @param int $timeout
* @return mixed
*/
function httpGet($url, $data=null, $method='get', $header = array("content-type: application/json"), $https=true, $timeout = 5){
$method = strtoupper($method);
$ch = curl_init();//初始化
curl_setopt($ch, CURLOPT_URL, $url);//访问的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出
if($https){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//https请求 不验证证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//https请求 不验证HOST
}
if ($method != "GET") {
if($method == 'POST'){
curl_setopt($ch, CURLOPT_POST, true);//请求方式为post请求
}
if ($method == 'PUT' || strtoupper($method) == 'DELETE') {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//请求数据
}
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //模拟的header头
//curl_setopt($ch, CURLOPT_HEADER, false);//设置不需要头信息
$result = curl_exec($ch);//执行请求
curl_close($ch);//关闭curl,释放资源
return $result;
}
}