>  기사  >  백엔드 개발  >  WeChat에서 여러 메시지를 지속적으로 보내는 예제 코드 공유

WeChat에서 여러 메시지를 지속적으로 보내는 예제 코드 공유

零下一度
零下一度원래의
2017-06-29 11:18:4713969검색
  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 ?>

 

위 내용은 WeChat에서 여러 메시지를 지속적으로 보내는 예제 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.