$foreach($arr_item as $item) { $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']); }
代码贴到下面,望各位大神解决这个问题!
valid();//这里是测试网站配置信息和开发的是否一致。$wechatObj->responseMsg();//新增加这一项,目的是调用responseMsg()这个功能。class wechatCallbackapiTest {//若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。public function valid() { $echoStr = $_GET["echostr"]; //alid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) {case "text": $resultStr = $this->receiveText($postObj); break;case "image": $resultStr = $this->receiveImage($postObj); break;case "location": $resultStr = $this->receiveLocation($postObj); break;case "voice": $resultStr = $this->receiveVoice($postObj); break;case "video": $resultStr = $this->receiveVideo($postObj); break;case "link": $resultStr = $this->receiveLink($postObj); break;case "event": $resultStr = $this->receiveEvent($postObj); break;default: $resultStr = "unknow msg type: ".$RX_TYPE; break; } echo $resultStr; }else { echo ""; exit; } } /*文本消息->1*/ private function receiveText($object){ $keyword = trim($object->Content); if(!empty($keyword)){ $url = "http://www.tuling123.com/openapi/api?key=a2fcd4181d8aa942ca2e078b1c479684&info=".$keyword; $data = file_get_contents($url); $text =json_decode($data,ture); $cOntent= $text['text']; $result =$this->transmitText($object,$content); } else if($keyword=="图文"||$keyword=="单图文"){ $cOntent= array(); $content[]=array("Title"=>"单图文标题", "Descrption"=>"单图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $result = $this->transmitNews($object,$content); } else if($keyword=="多图文"){ $cOntent= array(); $content[]=array("Title"=>"多图文标题1", "Descrption"=>"图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $content[]=array("Title"=>"多图文标题2", "Descrption"=>"图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $content[]=array("Title"=>"多图文标题3", "Descrption"=>"图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $result = $this->transmitNews($object,$content); }else if($keyword=="音乐"){ $cOntent= array("Title"=>"七月上", "Descrption"=>"jam", "MusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3", "HQMusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3"); $result = $this->transmitMusic($object,$content); } return $result; } /*图片消息->1*/ private function receiveImage($object){ $cOntent=array("MediaId"=>$object->MediaId); $result = $this->transmitImage($object,$content); return $result; } /*回复语音消息->1*/ private function receiveVoice($object){ $cOntent=array("MediaId"=>$object->MediaId); $result =$this->transmitVoice($object,$content); return $result; } /*回复视频消息->*/ private function receiveVideo($object){ $cOntent=array("MediaId"=>$object->MediaId, "ThumbMediaId"=>$object->ThumbMediaId, "Title"=>"", "Descrption"=>""); $result=$this->transmitVideo($object,$content); return $result; } /*回复文本消息->xml*/ private function transmitText($object,$content){ $textTpl = " %s "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time(),$content); return $result; } /*回复图片消息xml*/ private function transmitImage($object,$imageArray){ $itemTpl = " "; $item_str = sprintf($itemTpl,$imageArray['MediaId']); $textTpl = " %s $item_str "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; } /*回复语音消息xml*/ private function transmitVoice($object,$voiceArray){ $itemTpl = " "; $item_str = sprintf($itemTpl,$voiceArray['MediaId']); $textTpl = " %s $item_str "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; } /*回复视频消息Xml*/ private function transmitVideo($object,$videoArray){ $itemTpl = ""; $item_str = sprintf($itemTpl,$videoArray['MediaId'],$videoArray['ThumbMediaId'],$videoArray['Title'],$videoArray['Descrption']); $textTpl = " %s $item_str "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; } /*回复图文消息xml*/ private function transmitNews($object,$arr_item){ if(!is_array($arr_item)) return; $itemTpl = " "; $item_str = ""; $foreach($arr_item as $item) { $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']); } $newsTpl = " %s %s $item_str "; $result = sprintf($newsTpl,$object->FromUserName,$object->ToUserName,time(),count($arr_item)); return $result; } /*回复音乐xml*/ private function transmitMusic($object,$musicArray){ $itemTpl = " "; $item_str = sprintf($itemTpl,$musicArray['Title'],$musicArray['Description'],$musicArray['MusicUrl'],$musicArray['HQMusicUrl']); $textTpl = " %s $item_str "; $result=sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; }// 开发者通过检验signature对请求进行校验 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; } } } ?>
放到SAE中 ,请问这是怎么回事? 出错地方如下:
$foreach($arr_item as $item) { $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']); }
代码贴到下面,望各位大神解决这个问题!
valid();//这里是测试网站配置信息和开发的是否一致。$wechatObj->responseMsg();//新增加这一项,目的是调用responseMsg()这个功能。class wechatCallbackapiTest {//若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。public function valid() { $echoStr = $_GET["echostr"]; //alid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) {case "text": $resultStr = $this->receiveText($postObj); break;case "image": $resultStr = $this->receiveImage($postObj); break;case "location": $resultStr = $this->receiveLocation($postObj); break;case "voice": $resultStr = $this->receiveVoice($postObj); break;case "video": $resultStr = $this->receiveVideo($postObj); break;case "link": $resultStr = $this->receiveLink($postObj); break;case "event": $resultStr = $this->receiveEvent($postObj); break;default: $resultStr = "unknow msg type: ".$RX_TYPE; break; } echo $resultStr; }else { echo ""; exit; } } /*文本消息->1*/ private function receiveText($object){ $keyword = trim($object->Content); if(!empty($keyword)){ $url = "http://www.tuling123.com/openapi/api?key=a2fcd4181d8aa942ca2e078b1c479684&info=".$keyword; $data = file_get_contents($url); $text =json_decode($data,ture); $cOntent= $text['text']; $result =$this->transmitText($object,$content); } else if($keyword=="图文"||$keyword=="单图文"){ $cOntent= array(); $content[]=array("Title"=>"单图文标题", "Descrption"=>"单图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $result = $this->transmitNews($object,$content); } else if($keyword=="多图文"){ $cOntent= array(); $content[]=array("Title"=>"多图文标题1", "Descrption"=>"图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $content[]=array("Title"=>"多图文标题2", "Descrption"=>"图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $content[]=array("Title"=>"多图文标题3", "Descrption"=>"图文内容", "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg", "Url"=>"http://m.cnblogs.com/?u=txw1958"); $result = $this->transmitNews($object,$content); }else if($keyword=="音乐"){ $cOntent= array("Title"=>"七月上", "Descrption"=>"jam", "MusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3", "HQMusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3"); $result = $this->transmitMusic($object,$content); } return $result; } /*图片消息->1*/ private function receiveImage($object){ $cOntent=array("MediaId"=>$object->MediaId); $result = $this->transmitImage($object,$content); return $result; } /*回复语音消息->1*/ private function receiveVoice($object){ $cOntent=array("MediaId"=>$object->MediaId); $result =$this->transmitVoice($object,$content); return $result; } /*回复视频消息->*/ private function receiveVideo($object){ $cOntent=array("MediaId"=>$object->MediaId, "ThumbMediaId"=>$object->ThumbMediaId, "Title"=>"", "Descrption"=>""); $result=$this->transmitVideo($object,$content); return $result; } /*回复文本消息->xml*/ private function transmitText($object,$content){ $textTpl = " %s "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time(),$content); return $result; } /*回复图片消息xml*/ private function transmitImage($object,$imageArray){ $itemTpl = " "; $item_str = sprintf($itemTpl,$imageArray['MediaId']); $textTpl = " %s $item_str "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; } /*回复语音消息xml*/ private function transmitVoice($object,$voiceArray){ $itemTpl = " "; $item_str = sprintf($itemTpl,$voiceArray['MediaId']); $textTpl = " %s $item_str "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; } /*回复视频消息Xml*/ private function transmitVideo($object,$videoArray){ $itemTpl = ""; $item_str = sprintf($itemTpl,$videoArray['MediaId'],$videoArray['ThumbMediaId'],$videoArray['Title'],$videoArray['Descrption']); $textTpl = " %s $item_str "; $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; } /*回复图文消息xml*/ private function transmitNews($object,$arr_item){ if(!is_array($arr_item)) return; $itemTpl = " "; $item_str = ""; $foreach($arr_item as $item) { $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']); } $newsTpl = " %s %s $item_str "; $result = sprintf($newsTpl,$object->FromUserName,$object->ToUserName,time(),count($arr_item)); return $result; } /*回复音乐xml*/ private function transmitMusic($object,$musicArray){ $itemTpl = " "; $item_str = sprintf($itemTpl,$musicArray['Title'],$musicArray['Description'],$musicArray['MusicUrl'],$musicArray['HQMusicUrl']); $textTpl = " %s $item_str "; $result=sprintf($textTpl,$object->FromUserName,$object->ToUserName,time()); return $result; }// 开发者通过检验signature对请求进行校验 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; } } } ?>
foreach
不是变量,为什么前面有个$
?