这段代码基本上拿来就能用 这个是只要点击客服 无论你发送啥 都回复统一的消息 没做太详细的区分 是否发的图片文字这种
参考了别人的代码
<?php namespace app\api\controller; use app\api\controller\Base; use think\Cache; header('Content-type:text'); define("TOKEN", "weixin"); class Xiaokefu extends Base { public function index(){ // $access_token = $this->get_accessToken(); // $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token; // $content = '您好,有什么能帮助你?'; // // $data=array( // // "touser"=>"424", // // "msgtype"=>"text", // // "text"=>array("content"=>$content) // // ); // $data=array( // "touser"=>"535", // "msgtype"=>"link", // "link"=>array( // "title"=>"aaa", // "description"=>"Is Really A Happy Day", // "url"=>"http://mp.weixin.qq.com/s?__biz=MzU0MTY5MDYxOQ==&mid=100000046&idx=1&sn=548cee99f32bc6a78d050a77f1a17a76&chksm=7b275eba4c50d7acb65ca556277e2fc94d225fa9fe7ff0c223f9f081c8d19359e9835cefbf71#rd", // "thumb_url"=>"http://mp.weixin.qq.com/s?__biz=MzU0MTY5MDYxOQ==&mid=100000046&idx=1&sn=548cee99f32bc6a78d050a77f1a17a76&chksm=7b275eba4c50d7acb65ca556277e2fc94d225fa9fe7ff0c223f9f081c8d19359e9835cefbf71#rd" // ) // ); // // $json = json_encode($data,JSON_UNESCAPED_UNICODE); //php5.4+ // echo $url."<br />"; // $arr=curl_post($url,$data); // print_r($arr);exit; } public function check_server(){ //校验服务器地址URL if (isset($_GET['echostr'])) { $this->valid(); }else{ $this->responseMsg(); } } public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ header('content-type:text'); echo $echoStr; exit; }else{ echo $echoStr.'+++'.TOKEN; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; file_put_contents("kefu.txt",$postStr); $postArr1 = json_decode($postStr,true); if ($postStr){ //文本消息 $fromUsername = $postArr1['FromUserName']; //发送者openid $toUserName = $postArr1['ToUserName']; //小程序id // file_put_contents("a.txt",$fromUsername); // file_put_contents("b.txt",$toUserName); // $textTpl = array( // "ToUserName"=>$fromUsername, // "FromUserName"=>$toUserName, // "CreateTime"=>time(), // "MsgType"=>"transfer_customer_service", // ); // { // "touser":"OPENID", // "msgtype":"text", // "text": // { // "content":"Hello World" // } // } // $content = '您好,有什么能帮助你?'; // $data=array( // "touser"=>$fromUsername, // "msgtype"=>"text", // "text"=>array("content"=>$content) // ); $data=array( "touser"=>$fromUsername, "msgtype"=>"link", "link"=>array( "title"=>"标题", "description"=>"标题描述", "url"=>"http://xxxx", //这里是图文跳转的链接 "thumb_url"=>"https://ubmcmm.baidustatic.com/media/v1/0f000Ki-jIfGPvxkW_YOt0.jpg"//这个是图文右小角的图片 ) ); $json = json_encode($data,JSON_UNESCAPED_UNICODE); //php5.4+ // file_put_contents("fs.txt",$json); $access_token = $this->get_accessToken(); // file_put_contents("tk.txt",$access_token); /* * POST发送https请求客服接口api */ $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token; //以'json'格式发送post的https请求 $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($json)){ curl_setopt($curl, CURLOPT_POSTFIELDS,$json); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($curl, CURLOPT_HTTPHEADER, $headers ); $output = curl_exec($curl); if (curl_errno($curl)) { file_put_contents("cw.txt",json_encode($curl)); curl_close($curl); if($output == 0){ echo 'success';exit; } //file_put_contents("url.txt",$url); // $data = curl_post($url,$data); // file_put_contents("sb.txt",json_encode($data)); }else{ // file_put_contents("kefu1.txt",$postStr); // file_put_contents("6.txt",'666'); echo ""; exit; } } } /* 调用微信api,获取access_token,有效期7200s -xzz0704 */ public function get_accessToken(){ /* 在有效期,直接返回access_token */ if(Cache::get('access_token')){ return Cache::get('access_token'); } /* 不在有效期,重新发送请求,获取access_token */ else{ $appid=config("app_id"); $secret=config("app_secret"); $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret; file_put_contents("tkurl.txt",$url); $result = curl_get($url); $res = json_decode($result,true); //json字符串转数组 if($res){ Cache::set('access_token',$res['access_token'],7100); return Cache::get('access_token'); }else{ return 'api return error'; } } } }