<?php /** * PushMessage * 微信公众号发送文本信息 */ class PushMessage{ private $appID = ""; // 服务号appID private $appSecret = ""; // 服务号appSerect // 获取access_token public function getAccessToken() { $appID = $this->appID; // 服务号appID $appSecret = $this->appSecret; // 服务号appSerect $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appID&secret=$appSecret"; $content = file_get_contents($url); $content = (array)json_decode($content); if(isset($content[‘errcode‘])){ echo ‘授权失败‘; exit; } $record = array(); $record[‘token‘] = $content[‘access_token‘]; return $record[‘token‘]; } // 2. 判断是否关注公众号。 // 判断当前用户是否关注公众号 public function isSubscribe($openid) { $access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appID&secret=$this->appSecret"; $access_msg = json_decode(file_get_contents($access_token)); $token = $access_msg->access_token; $subscribe_msg = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$token&openid={$openid}"; $subscribe = json_decode(file_get_contents($subscribe_msg)); $gzxx = $subscribe->subscribe; // if($gzxx === 1){ return 1; }else{ return 0; } } // 3. 发送客服消息。 public function solPushMsg($openid, $content) { // 获取access_token $accessToken = $this->getAccessToken(); $sta = $this->isSubscribe($openid); if(!$sta){ return ‘请关注公众号接受信息‘; } // content $data = array( ‘touser‘ => $openid, // 用户openID ‘msgtype‘ => ‘text‘, ‘text‘ => [ ‘content‘ => urlencode($content), // 内容 ], ); // send $url = ‘https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=‘.$accessToken; $res = $this->getJson($url,urldecode(json_encode($data))); // urldecode必须带上,不然发出的消息可能是unicode编码的 return $res; } function getJson($url,$data=0){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if(!empty($data)){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } $output = curl_exec($ch); curl_close($ch); return json_decode($output, true); } } $message = new PushMessage; $message->solPushMsg(‘openID‘,‘文本内容‘);