CopyRight 2014 All Rights Reserved*/
define("TOKEN", "weixin");$wechatObj = newwechatCallbackapiTest();if (!isset($_GET['echostr'])) {$wechatObj->responseMsg();
}else{$wechatObj->valid();
}classwechatCallbackapiTest
{//验证签名
public functionvalid()
{$echoStr = $_GET["echostr"];$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){echo $echoStr;exit;
}$siteURL='http://210.14.148.180/kdjy/';
}public functionresponseMsg()
{$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];if (!empty($postStr)){$this->logger("R ".$postStr);$postObj = simplexml_load_string($postStr, 'SimpleXMLElement',LIBXML_NOCDATA);$RX_TYPE = trim($postObj->MsgType);$result = "";switch ($RX_TYPE)
{case "event":
$result = $this->receiveEvent($postObj);break;case "text":
$result = $this->receiveText($postObj);break;
}$this->logger("T ".$result);echo $result;
}else{echo "";exit;
}
}private function receiveEvent($object)
{switch ($object->Event)
{case "subscribe":
$content = "欢迎关注方倍工作室 ";//------------------- 赞一下 start ------------------------
case "CLICK": //这里是大写‘CLICK’
$content = $object->EventKey; //获取key
if($content=='V1001_GOOD'){$content = '谢谢支持!!!';
}//------------------- 赞一下 end ------------------------
break;
}$result = $this->transmitText($object, $content);return $result;
}private function receiveText($object)
{$keyword = trim($object->Content);$url = "http://apix.sinaapp.com/weather/?appkey=".$object->ToUserName."&city=".urlencode($keyword);$output = file_get_contents($url);$content = json_decode($output, true);$result = $this->transmitNews($object, $content);return $result;
}private function transmitText($object, $content)
{if (!isset($content) || empty($content)){return "";
}$textTpl = "
%s
";$result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content);return $result;
}private function transmitNews($object, $newsArray)
{if(!is_array($newsArray)){return "";
}$itemTpl = "
";$item_str = "";foreach ($newsArray 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($newsArray));return $result;
}private function logger($log_content)
{
}
}?>