zoukankan      html  css  js  c++  java
  • 微信触发连续发送多条消息(雏形)

      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 ?>  

    首先获取用户的openid,然后调用客服接口,从而可以多次向指定用户发送多条消息;

  • 相关阅读:
    云架构师进阶攻略(1)
    针对云主机卡死问题的定位分析方法
    让App飞久一点
    OC静态代码检查实战
    PAT 1010. 一元多项式求导
    PAT 1009. 说反话
    PAT 1008 数组元素循环右移问题
    PAT 1007. 素数对猜想
    PAT 1006 换个格式输出整数
    PAT 1005 继续(3n+1)猜想
  • 原文地址:https://www.cnblogs.com/summerkxy/p/7090060.html
Copyright © 2011-2022 走看看