zoukankan      html  css  js  c++  java
  • 微信公众号发送客服消息

    <?php
    /**
     * PushMessage
     * 微信公众号发送文本信息
     */
    class PushMessage{
        private $appID = "";          // 服务号appID
        private $appSecret = "";     // 服务号appSerect
        // 获取access_token
        public function getAccessToken() {
            $appID = $this->appID;                                   // 服务号appID
            $appSecret = $this->appSecret;                           // 服务号appSerect
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appID&secret=$appSecret";
            $content = file_get_contents($url); 
            $content = (array)json_decode($content); 
            if(isset($content['errcode'])){
                echo '授权失败';
                exit;
            }
            $record = array();
            $record['token'] = $content['access_token'];
            return $record['token'];
        }
    
        // 2. 判断是否关注公众号。
        // 判断当前用户是否关注公众号
        public  function isSubscribe($openid) {
    
            $access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appID&secret=$this->appSecret";
            $access_msg = json_decode(file_get_contents($access_token));
            $token = $access_msg->access_token;
            $subscribe_msg = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$token&openid={$openid}";
            $subscribe = json_decode(file_get_contents($subscribe_msg));
            $gzxx = $subscribe->subscribe;
            //
            if($gzxx === 1){
                return 1;
            }else{
                return 0;
                 
            }
        }
     
    
        // 3. 发送客服消息。
        public function solPushMsg($openid, $content) {
            // 获取access_token
            $accessToken = $this->getAccessToken();
           $sta = $this->isSubscribe($openid);
            if(!$sta){
                return '请关注公众号接受信息';
            }
           // content
            $data = array(
              'touser' => $openid,              // 用户openID
              'msgtype' => 'text',
              'text' => [
                    'content' => urlencode($content),     // 内容
                ],
            );
            // send
            $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$accessToken; 
            $res = $this->getJson($url,urldecode(json_encode($data))); // urldecode必须带上,不然发出的消息可能是unicode编码的
            
            return $res;
            
        }   
        function getJson($url,$data=0){
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            if(!empty($data)){
                   curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
             }
            
            $output = curl_exec($ch);
            curl_close($ch);
            return json_decode($output, true);
        }
    }
    $message = new PushMessage;
    $message->solPushMsg('openID','文本内容');
  • 相关阅读:
    kali环境下如何安装最新版cobalt strike
    win10结束进程时拒绝访问的处理办法
    Windows下Postgresql数据库的下载与配置方法
    ubuntu下安装及配置git的方法
    运行和控制Nginx
    nginx安装(详解)
    ubuntu安装nginx
    在Windows安装运行Kafka
    linux下安装使用虚拟环境
    《操作系统真象还原》线程
  • 原文地址:https://www.cnblogs.com/LF-place/p/13563102.html
Copyright © 2011-2022 走看看