微信开发之微信群发消息4
白羽 2019-01-08 来源 :网络 阅读 940 评论 0

摘要:本文将带你了解微信开发31----微信群发消息4,希望本文对大家学微信有所帮助。

    本文将带你了解微信开发31----微信群发消息4,希望本文对大家学微信有所帮助。


 

index.php代码如下:

checkSignature()){            echo $echoStr;            exit;        }      }    public function   responseMsg()    {        //get post data, May be due to the   different environments        $postStr   = $GLOBALS["HTTP_RAW_POST_DATA"];                  //extract post data        if (!empty($postStr)){                /*   libxml_disable_entity_loader is to prevent XML eXternal Entity   Injection,                   the best   way is to check the validity of xml by yourself */                // 使用simplexml技术对xml进行解析                 //   libxml_disable_entity_loader(true), 是从安全性考虑,为了防止xml外部注入,                //只对xml内部实体内容进行解析                libxml_disable_entity_loader(true);                //加载 postStr 字符串                $postObj =   simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);                $fromUsername =   $postObj->FromUserName;                  $toUsername = $postObj->ToUserName;                $keyword =   trim($postObj->Content);                  $time = time();                  global $tmp_arr;                                //当用户公众号有互动时,我们将会动hd_time字段更新                $connect = mysql_connect('localhost','root','root')   or die('数据库链接失败');                  mysql_select_db('wxdb',$connect);                mysql_query('set names   utf8');                $sql =   "update qf_users set hd_time='{$time}' where   openid='{$fromUsername}'";                  mysql_query($sql, $connect);                                  //根据接收到的消息类型,来进行分支处理(switch)                switch($postObj->MsgType)                {                    case 'event':                          if($postObj->Event == 'subscribe')                        {                                                          $contentStr = "欢迎关注leigood微信测试号噢";                            $resultStr =   sprintf($tmp_arr['text'], $fromUsername, $toUsername, $time,   $contentStr);                              echo $resultStr;                                                           //消息回复后,我们将该用户加入qf_users表里面                            $time =   time();                            $sql   = "insert into qf_users (id,openid,hd_time) values(NULL,'{$fromUsername}','{$time}')";                              mysql_query($sql,$connect);                        }                                                  //如果对方取消关注了,那么我们就需要从数据库里面删除掉                          if($postObj->Event == 'unsubscribe'){                            $sql =   "delete from qf_users where openid='{$fromUsername}'";                              mysql_query($sql,$connect);                        }                                                  break;                    case   'text': //回复文本模块                          //这里开始测试客服消息接口了                          if($keyword == '文本'){                           //获取token                           require   'get_token.php';                             $contentStr = '这是客服接口的回复,我们可以帮助您什么?';                             //对发送的内容进行urlencode编码,防止中文乱码                           $contentStr =   urlencode($contentStr);                             //到时候我们我发送的内容我们放到一个数组里面去了                           $content_arr =   array('content'=>"{$contentStr}");                             //这里的意思是将来我要发送消息给这个用户                           $reply_arr =   array('touser'=>"{$fromUsername}",'msgtype'=>'text','text'=>$content_arr);                             //下一步就是将编码转成规定的json格式                           $post =   json_encode($reply_arr);                           //url解码,如果不解码他将会发来一段二进制代码                           $post =   urldecode($post);                             $url =   "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={$access_token}";                             //这里我们来使用类的继承机制,来简化代码                           $this ->   http_request($url,$post);                             //这里是可以回复多条消息的,只需要在执行下这个函数即可                           //$this ->   http_request($url,$post);                        }else{                            $contentStr =   '您输入的格式有误';                              $resultStr = sprintf($tmp_arr['text'], $fromUsername, $toUsername,   $time, $contentStr);                            echo   $resultStr;                          }                          break;                    case   'image': //处理用户上传图片                          $media_id = $postObj -> MediaId; //获取到用户上传的图片的mediaid                        $resultStr =   sprintf($tmp_arr['image'], $fromUsername, $toUsername, $time,   $media_id);                        echo   $resultStr;                                                  //将图片保存到本地服务器的文件系统                        //1.先给图片创建一个名字                        $image_file_name =   time().'.jpg';                          //2.获取该图片的内容                          $image_file = file_get_contents($postObj->PicUrl);                          //3.保存到本地服务器的文件系统                          //提醒:一定要保证您创建的文件夹是www用户可读可写,否则无法保存该图片到文件夹下                          file_put_contents("./uploadimage/".$image_file_name,$image_file);                                                  //将图片的路径和相关信息入库                          //1.创建一张表                          //2.链接mysql数据库,并且添加图片信息                        $connect =   mysql_connect('localhost','root','root');                          mysql_select_db('wxdb',$connect);                        mysql_query('set   names utf8');                          $media_path = "./uploadimage/".$image_file_name; //路径                        $sql = "insert   into keep_image_uploads (id,openid,media_id,media_path)   values(NULL,'{$fromUsername}','{$media_id}','{$media_path}')";                          mysql_query($sql,$connect);                        break;                    case 'voice':   //处理用户上传语言的业务逻辑                          $media_id = $postObj -> MediaId; //获取media_id的id号                        $resultStr =   sprintf($tmp_arr['voice'], $fromUsername, $toUsername, $time,   $media_id);                        echo   $resultStr;                          break;                    case   'location': //处理用户上传的地理位置信息                        $Location_X =   $postObj -> Location_X; //获取上传地理位置的纬度                        $Location_Y =   $postObj -> Location_Y; //获取上传地地理位置经度                        $contentStr =   "您上报的地理位置是:\n经度是:{$Location_Y} \n纬度是: {$Location_X}";                        $resultStr =   sprintf($tmp_arr['text'], $fromUsername, $toUsername, $time,   $contentStr);                          echo $resultStr;                          break;                    case   'link': //接收并回复链接信息                          //获取到用户上传的链接信息                          $Title = $postObj -> Title;                        $Url = $postObj   -> Url;                          $contentStr = "{$Title}";                        $resultStr =   sprintf($tmp_arr['text'], $fromUsername, $toUsername, $time, $contentStr);                        echo $resultStr;                        break;                                        }        }else {            echo "";            exit;        }      }            private function   checkSignature()    {        // you must define TOKEN by yourself        if (!defined("TOKEN"))   {            throw new Exception('TOKEN   is not defined!');        }                $signature =   $_GET["signature"];          $timestamp = $_GET["timestamp"];        $nonce = $_GET["nonce"];                        $token = TOKEN;        $tmpArr = array($token, $timestamp,   $nonce);        // use SORT_STRING rule        sort($tmpArr, SORT_STRING);        $tmpStr = implode( $tmpArr );        $tmpStr = sha1( $tmpStr );                if( $tmpStr == $signature   ){            return true;        }else{            return false;        }      }}//如果这段代码放在上面,那程序将会报错,因为继承的问题,会显示类没有找到$wechatObj = new   wechatCallbackapiTest();//当接入成功后,请注销这句话,否则,会反复验证。//$wechatObj->valid();//添加响应请求的语句$wechatObj->responseMsg();?>

然后修改模版代码,common.php代码如下所示:

<!--{cke_protected}{C}%3C!%2D%2D%3Fphp%0A%20%20%20%20%24tmp_arr%20%3D%20array(%0A%20%20%20%20'text'%20%3D%2D%2D%3E-->   <<<xml   xml=""><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></fromusername><createtime>%s</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Btext%5D%5D%2D%2D%3E--></msgtype><content><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></content><funcflag>0</funcflag></xml>XML,    'image'=> <<<xml   xml=""><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></fromusername><createtime>%s</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bimage%5D%5D%2D%2D%3E--></msgtype><img><mediaid><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></mediaid></xml>XML,    'voice'=>   <<<xml xml=""><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></fromusername><createtime>%s</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bvoice%5D%5D%2D%2D%3E--></msgtype><voice><mediaid><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></mediaid></voice></xml>XML,    'music'=>   <<<xml xml=""><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></fromusername><createtime>%s</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bmusic%5D%5D%2D%2D%3E--></msgtype><music><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></title><description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></description><musicurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></musicurl><hqmusicurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></hqmusicurl></music></xml>XML,    'singlenews'=>   <<<xml   xml=""><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></fromusername><createtime>%s</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bnews%5D%5D%2D%2D%3E--></msgtype><articlecount>1</articlecount><articles><item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></title>   <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></picurl><url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></url></item></articles></xml>   XML,    'newses'=>   <<<xml   xml=""><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></fromusername><createtime>%s</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bnews%5D%5D%2D%2D%3E--></msgtype><articlecount>4</articlecount><articles><item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></title>   <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></picurl><url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></url></item><item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></title>   <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></picurl><url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></url></item><item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></title>   <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></picurl><url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></url></item><item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></title>   <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></picurl><url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></url></item></articles></xml>   XML,    'video'=>   <<<xml   xml=""><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></fromusername><createtime>%s</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bvideo%5D%5D%2D%2D%3E--></msgtype><video><mediaid><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></mediaid></video><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></title><description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%25s%5D%5D%2D%2D%3E--></description>   </xml>XML);          function http_request($url, $data=null){            //我们使用curl函数            //初始化            $ch = curl_init();            //设置变量            curl_setopt($ch, CURLOPT_URL,$url);   //这意思是,设置好发送的url地址发送到那              //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,$url);   这样的意思是对方要不要验证,如果不用则按照下面的即可              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE); //如果不用验证,这样即可            curl_setopt($ch,   CURLOPT_SSL_VERIFYHOST,FALSE); //如果不用验证HOST主机这样即可            if(!empty($data)){                curl_setopt($ch,CURLOPT_POST,1);//启用时会发送一个常规的POST请求,就像表单提交的一样。                  curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//全部数据使用HTTP协议中的"POST"操作来            }            curl_setopt($ch,   CURLOPT_RETURNTRANSFER,1); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出            //执行            $output = curl_exec($ch);   //返回来的值是一个json格式的值              //关闭句柄              curl_close($ch);              return $output;          }

get_token.php代码如下所示:

<!--{cke_protected}{C}%3C!%2D%2D%3Fphp%0A%20%20%20%20%2F%2F%E5%8E%9F%E7%90%86%EF%BC%8C%E5%B0%B1%E6%98%AF%E4%BD%BF%E7%94%A8curl%E5%87%BD%E6%95%B0%EF%BC%8C%E5%8F%91%E5%87%BAhttp%E8%AF%B7%E6%B1%82%EF%BC%8C%E8%8E%B7%E5%8F%96access_token%0A%20%20%20%20%24appid%20%3D%20'wxed89d8f74fa6fc51'%3B%0A%20%20%20%20%24appsecret%20%3D%20'd4624c36b6795d1d99dcf0547af5443d'%3B%0A%20%20%20%20%24url%20%3D%20%22https%3A%2F%2Fapi.weixin.qq.com%2Fcgi-bin%2Ftoken%3Fgrant_type%3Dclient_credential%26appid%3D%7B%24appid%7D%26secret%3D%7B%24appsecret%7D%22%3B%0A%20%20%20%20%0A%20%20%20%20%2F%2F%E6%88%91%E4%BB%AC%E4%BD%BF%E7%94%A8curl%E5%87%BD%E6%95%B0%0A%20%20%20%20%2F%2F%E5%88%9D%E5%A7%8B%E5%8C%96%0A%20%20%20%20%24ch%20%3D%20curl_init()%3B%0A%20%20%20%20%2F%2F%E8%AE%BE%E7%BD%AE%E5%8F%98%E9%87%8F%0A%20%20%20%20curl_setopt(%24ch%2C%20CURLOPT_URL%2C%24url)%3B%20%2F%2F%E8%BF%99%E6%84%8F%E6%80%9D%E6%98%AF%EF%BC%8C%E8%AE%BE%E7%BD%AE%E5%A5%BD%E5%8F%91%E9%80%81%E7%9A%84url%E5%9C%B0%E5%9D%80%E5%8F%91%E9%80%81%E5%88%B0%E9%82%A3%0A%20%20%20%20%2F%2Fcurl_setopt(%24ch%2C%20CURLOPT_SSL_VERIFYPEER%2C%24url)%3B%20%E8%BF%99%E6%A0%B7%E7%9A%84%E6%84%8F%E6%80%9D%E6%98%AF%E5%AF%B9%E6%96%B9%E8%A6%81%E4%B8%8D%E8%A6%81%E9%AA%8C%E8%AF%81%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%B8%8D%E7%94%A8%E5%88%99%E6%8C%89%E7%85%A7%E4%B8%8B%E9%9D%A2%E7%9A%84%E5%8D%B3%E5%8F%AF%0A%20%20%20%20curl_setopt(%24ch%2C%20CURLOPT_SSL_VERIFYPEER%2CFALSE)%3B%20%2F%2F%E5%A6%82%E6%9E%9C%E4%B8%8D%E7%94%A8%E9%AA%8C%E8%AF%81%EF%BC%8C%E8%BF%99%E6%A0%B7%E5%8D%B3%E5%8F%AF%0A%20%20%20%20curl_setopt(%24ch%2C%20CURLOPT_SSL_VERIFYHOST%2CFALSE)%3B%20%2F%2F%E5%A6%82%E6%9E%9C%E4%B8%8D%E7%94%A8%E9%AA%8C%E8%AF%81HOST%E4%B8%BB%E6%9C%BA%E8%BF%99%E6%A0%B7%E5%8D%B3%E5%8F%AF%0A%20%20%20%20curl_setopt(%24ch%2C%20CURLOPT_RETURNTRANSFER%2C1)%3B%20%2F%2F%E5%B0%86curl_exec()%E8%8E%B7%E5%8F%96%E7%9A%84%E4%BF%A1%E6%81%AF%E4%BB%A5%E6%96%87%E4%BB%B6%E6%B5%81%E7%9A%84%E5%BD%A2%E5%BC%8F%E8%BF%94%E5%9B%9E%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%0A%20%20%20%20%2F%2F%E6%89%A7%E8%A1%8C%0A%20%20%20%20%24output%20%3D%20curl_exec(%24ch)%3B%20%2F%2F%E8%BF%94%E5%9B%9E%E6%9D%A5%E7%9A%84%E5%80%BC%E6%98%AF%E4%B8%80%E4%B8%AAjson%E6%A0%BC%E5%BC%8F%E7%9A%84%E5%80%BC%0A%20%20%20%20%2F%2F%E5%85%B3%E9%97%AD%E5%8F%A5%E6%9F%84%0A%20%20%20%20curl_close(%24ch)%3B%0A%20%20%20%20%2F%2F%E5%AF%B9%E8%BF%94%E5%9B%9E%E7%9A%84json%E7%BB%93%E6%9E%9C%E8%A6%81%E5%B0%86%E4%BB%96%E8%BD%AC%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%95%B0%E7%BB%84%0A%20%20%20%20%24jsoninfo%20%3D%20json_decode(%24output%2Ctrue)%3B%0A%20%20%20%20%2F%2F%E6%B5%8B%E8%AF%95%E4%BB%A5%E4%B8%8B%EF%BC%8C%E7%9C%8B%E4%B8%8B%E6%98%AF%E5%90%A6%E6%8B%BF%E5%88%B0%E8%BF%94%E7%9A%84%E5%9B%9E%E6%95%B0%E7%BB%84%0A%20%20%20%20%2F%2Fvar_dump(%24jsoninfo)%3B%20%0A%20%20%20%20%0A%20%20%20%20%24access_token%20%3D%20%24jsoninfo%5B'access_token'%5D%3B%3C%2Fpre%2D%2D%3E-->

qf.php代码如下:

'{$time}'";      $res = mysql_query($sql);      $row = array();      //循环取出48小时用过的用户    while($row =   mysql_fetch_assoc($res)){          //这里可以写得更人性化一点,通过表单post过来即可          $contentStr = "这是调试消息群发接口的";        //将openid压进$fromUsername变量里面        $fromUsername = $row['openid'];        //因为可能会存在中文所以需要url编码        $contentStr =   urlencode($contentStr);           //到时候我们我发送的内容我们放到一个数组里面去了           $content_arr = array('content'=>"{$contentStr}");         //这里的意思是将来我要发送消息给这个用户        $reply_arr =   array('touser'=>"{$fromUsername}",'msgtype'=>'text','text'=>$content_arr);        //下一步就是将编码转成规定的json格式        $post = json_encode($reply_arr);        //url解码,如果不解码他将会发来一段二进制代码        $post = urldecode($post);        $url =   "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={$access_token}";        //这里我们来使用类的继承机制,来简化代码        http_request($url,$post);    }          echo "恭喜您,您已经成功群发消息";

然后在浏览器上进行访问qf.php即可实现群发功能,每刷以下,消息即可群发一条,但注意的是公众号是和客户互动48小时内的客户才可收到消息

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved