如题,代码如下。首次用手机微信关注时,会收到正确的模板消息,但是会收到二十几条,这是为什么呀?求指导答,谢谢
<?php //发送模板消息 class class_weixin { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } public function send_template_message($data) { $access_token="TB51ZSi_tr0LqkaC6tbPycuWJzmBLs-MZfbL4-bNisM4kmLKivYITlN628mMocaugWJPJzUYaPBKqKHxI7vYk_TZ2q4-3PEx6IPJB9ceOfVgUGiQ-XGOqpRs9XIxDMIfADAVEA"; $url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=$access_token "; var_dump($url);//var_dump函数可以直接输出一个变量的值 $res=$this->http_request($url,$data); return json_decode($res,true); } //https请求 protected function http_request($url,$data=NULL) { $ch=curl_init();//初始化一个curl会话 curl_setopt($ch, CURLOPT_URL, $url);//设置curl的参数 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); if(!empty($data)){ curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$data); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output=curl_exec($ch);//执行一个curl会话 curl_close($ch); return $output; } } $template=array( "touser"=>"ovx4Xw8ppIX5ZcsZNP7DtdD5rcGE", "template_id"=>"VCc3eWTJR0Z5k0Z5slofgNAlAAtveW9LOMr1yEjM", //"url"=>"http://weixin.qq.com/", "topcolor"=>"#FF0000", "data"=>array("first"=>array("value"=>urlencode("您好!"), "color"=>"", ), "keyword1"=>array("value"=>urlencode("您有一项消息"), "color"=>"", ), "keyword2"=>array("value"=>urlencode("2016年11月19日"), "color"=>"", ), "keyword3"=>array("value"=>urlencode("北京"), "color"=>"", ), "remark"=>array("value"=>urlencode("\n要快哦!"), "color"=>"", ), ) ); //调用SDK发送 //require_once("weixin.class.php"); define("TOKEN", "weixin"); $weixin = new class_weixin(); //$weixin->valid(); //var_dump($weixin->send_template_message(urldecode(json_encode($template)))); $weixin->send_template_message(urldecode(json_encode($template))); ?>
解决方案
20
原因是微信服务器还会给你返回消息,假如是这个地址的话,就会造成死循环!