1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 微信公众号 获取推送消息

微信公众号 获取推送消息

时间:2020-04-12 14:51:34

相关推荐

微信公众号 获取推送消息

1. 第一次验签

2. 关注或取消关注后就会推送消息

3. 一定要开启服务器配置,开启后需要过会儿生生效

<?php/*** Created by IntelliJ IDEA.* User: mzc* Date: -11-09* Time: 20:28*///ini_set("display_errors", "On");//error_reporting(E_ALL | E_STRICT);//exit("22222");class wx {private $_token = "dxxw";/*用于第一次验证我们网站url合法性*/public function firstValid(){$this->log(1111);//检验签名的合法性if($this->_checkSignature()){//签名合法,告知微信公众平台服务器echo $_GET['echostr'];}}/*** 验证签名* @return bool*/private function _checkSignature(){$this->log(2222);//获得由微信公众平台请求的验证数据$signature = $_GET['signature'];$timestamp = $_GET['timestamp'];$nonce = $_GET['nonce'];//将时间戳,随机字符串,token按照字母顺序排序,病并连接$tmp_arr = array($this->_token, $timestamp, $nonce);sort($tmp_arr, SORT_STRING);//字典顺序$tmp_str = implode($tmp_arr);//连接$tmp_str = sha1($tmp_str);//sha1加密if ($signature == $tmp_str) {$this->log("验证成功");return true;} else {$this->log("验证失败");return false;}}public function responseMsg(){/*获得请求时POST:XML字符串不能用$_POST获取,因为没有key*/mkdir(111,0777);$xml_str = !empty($GLOBALS['HTTP_RAW_POST_DATA'])?$GLOBALS['HTTP_RAW_POST_DATA']:$_POST;if(empty($xml_str)){$xml_str = file_get_contents('php://input');}$this->log($xml_str);// if(!empty($xml_str)){// // 解析该xml字符串,利用simpleXML// libxml_disable_entity_loader(true);// //禁止xml实体解析,防止xml注入// $request_xml = simplexml_load_string($xml_str, 'SimpleXMLElement', LIBXML_NOCDATA);// //判断该消息的类型,通过元素MsgType// switch ($request_xml->MsgType){//case 'event':////判断具体的时间类型(关注、取消、点击)//$event = $request_xml->Event;//if ($event=='subscribe') { // 关注事件// $this->_doSubscribe($request_xml);//}elseif ($event=='CLICK') {//菜单点击事件// $this->_doClick($request_xml);//}elseif ($event=='VIEW') {//连接跳转事件// $this->_doView($request_xml);//}else{////}//break;//case 'text'://文本消息//$this->_doText($request_xml);//break;//case 'image'://图片消息//$this->_doImage($request_xml);//break;//case 'voice'://语音消息//$this->_doVoice($request_xml);//break;//case 'video'://视频消息//$this->_doVideo($request_xml);//break;//case 'shortvideo'://短视频消息//$this->_doShortvideo($request_xml);//break;//case 'location'://位置消息//$this->_doLocation($request_xml);//break;//case 'link'://链接消息//$this->_doLink($request_xml);//break;// }// }}public function log($content){$logFile = "1.log";if(is_array($content)){$content = var_export($content,true);}$newLog = date('Y-m-d H:i:s').":".$content;file_put_contents($logFile, $newLog.PHP_EOL, FILE_APPEND);}}$wx = new wx();if(!empty($_GET['echostr'])){$wx->firstValid(); //验签}else{$wx->responseMsg();//接收关注或取消关注后的推送消息}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。