• 微信触发连续发送多条消息(雏形)


      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,然后调用客服接口,从而可以多次向指定用户发送多条消息;

  • 相关阅读:
    边框渐变
    循环遍历对象的方法
    H5 判断手机设备类型及不同类型调起分享
    Java工具延时队列
    银行风控模型
    解除网页复制需登陆限制 鸟
    weditor安装出错一直装不上
    【刷题】【dp】蓝桥·回路计数
    【笔记】第六章 利用数组处理批量数据
    【笔记】【C语言】格式控制符 / 格式输出函数printf()详解
  • 原文地址:https://www.cnblogs.com/summerkxy/p/7090060.html
Copyright © 2020-2023  润新知