小程序发送客服消息

这段代码基本上拿来就能用 这个是只要点击客服  无论你发送啥 都回复统一的消息 没做太详细的区分 是否发的图片文字这种

参考了别人的代码

<?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';
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/ljwy1234/article/details/80289992