1 <?php 2 3 class Kefu{ 4 private $appid; 5 private $appSecret; 6 7 function __construct($appid,$appSecret){ 8 $this->appid = $appid; 9 $this->appSecret = $appSecret; 10 } 11 12 function returnKefu($openid,$content){ 13 $access_token = $this->getAccessToken(); 14 $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=$access_token"; 15 $responseText = array("touser"=>$openid,"msgtype"=>"text","text"=>array("content"=>$content)); 16 $responjson = json_encode($responseText); 17 $res = $this->httpPost($url,$responjson); 18 echo $res; 19 } 20 function returnPic($openid,$content){ 21 $access_token = $this->getAccessToken(); 22 $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=$access_token"; 23 $responseText = array("touser"=>$openid,"msgtype"=>"image","image"=>array("media_id"=>"Xfh-2sT-4HHz0z1GrAgb1tlJowuAJuyI-O6AzFX_TT3UsZHwqdsjyUCY6GJGviMi")); 24 $responjson = json_encode($responseText); 25 $res = $this->httpPost($url,$responjson); 26 echo $res; 27 } 28 29 30 31 function getAccessToken(){ 32 $file_ticket = "access_token.json"; 33 if(!file_exists($file_ticket)){ 34 $file = fopen($file_ticket,'w'); 35 } 36 $data = json_decode(file_get_contents($file_ticket)); 37 if($data){ 38 //如果文件存在且内容过期 39 if($data->expires_in<time()){ 40 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appid&secret=$this->appSecret"; 41 $res = json_decode($this->httpGet($url)); 42 $access_token = $res->access_token; 43 if($access_token){ 44 $data->expires_in = time() + 7000; 45 $data->access_token = $access_token; 46 $fp = fopen($file_ticket, "w"); 47 fwrite($fp, json_encode($data)); 48 fclose($fp); 49 } 50 }else{ 51 //没有过期 52 return $data->access_token; 53 54 } 55 }else{ 56 //文件存在,但是里面没有内容 57 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appid&secret=$this->appSecret"; 58 $res = json_decode($this->httpGet($url)); 59 $access_token = $res->access_token; 60 if($access_token){ 61 @$data->expires_in = time() + 7000; 62 $data->access_token = $access_token; 63 $fp = fopen($file_ticket, "w"); 64 fwrite($fp, json_encode($data)); 65 fclose($fp); 66 } 67 } 68 return $access_token; 69 //return $data; 70 } 71 function httpGet($url){ 72 $ch = curl_init(); 73 curl_setopt($ch, CURLOPT_URL,$url); 74 // curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 75 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 76 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 77 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); 78 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 79 curl_setopt($ch, CURLOPT_AUTOREFERER, 1); 80 // curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 81 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 82 83 $temp = curl_exec($ch); 84 curl_close($ch); 85 return $temp; 86 } 87 88 function httpPost($url,$data){ 89 $ch = curl_init(); 90 curl_setopt( $ch, CURLOPT_URL, $url); 91 curl_setopt( $ch, CURLOPT_POST, 1 ); 92 curl_setopt( $ch, CURLOPT_HEADER, 0 ); 93 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); 94 //服务器没有使用https的话就不用下面两行 95 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 96 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 97 curl_setopt( $ch, CURLOPT_POSTFIELDS, $data ); 98 99 $output = curl_exec($ch); 100 curl_close($ch); 101 echo $output; 102 } 103 } 104 $k = new Kefu("appid", "appsecret"); 105 echo $k->returnPic("openid","how are you?"); 106 echo $k->returnKefu("openid","how are you?"); 107 ?>
Das obige ist der detaillierte Inhalt vonTeilen Sie den Beispielcode zum kontinuierlichen Senden mehrerer Nachrichten auf WeChat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!