我是这样写的,但是不知道为什么总是不能返回数据呢,有那位高人指点一二<?php
define("TOKEN", "shiyudir1978");
define("MESS","输入点啥吧");
include ("admin/install/config.php");
$conn=@mysql_connect($host,$user,$pass) or die ("数据连接错误");
mysql_select_db($database,$conn);
mysql_query("set names 'UTF8'");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
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);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$content = $postObj->Content;
$msgType=$postObj->MsgType;
$Title=$postObj->Title;
$Description=$postObj->Description;
$Url=$postObj->Url;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<Url><![CDATA[%s]]></Url>
<FuncFlag>0</FuncFlag>
</xml> ";
if(!empty( $keyword ))
{
$view_sql="select * from news where Title like '%$keyword%'";
//$view_sql="select * from news where ID=$keyword";
$view=mysql_fetch_array(mysql_query($view_sql));
$msgType = "link";
$rows = mysql_num_rows(mysql_query($view_sql));
if ($rows>0){
$Title = $view[Title];
}else{
$Title ="抱歉,您所选择的关键字在系统中不存在,我们正在不断的完善系统建设";
}
$Description="测试";
$Url="http://www.baidu.com";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $Title, $Description, $Url);
echo $resultStr;
}else{
echo MESS;
}
}else {
echo MESS;
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;
}
}
}
?>
define("TOKEN", "shiyudir1978");
define("MESS","输入点啥吧");
include ("admin/install/config.php");
$conn=@mysql_connect($host,$user,$pass) or die ("数据连接错误");
mysql_select_db($database,$conn);
mysql_query("set names 'UTF8'");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
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);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$content = $postObj->Content;
$msgType=$postObj->MsgType;
$Title=$postObj->Title;
$Description=$postObj->Description;
$Url=$postObj->Url;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<Url><![CDATA[%s]]></Url>
<FuncFlag>0</FuncFlag>
</xml> ";
if(!empty( $keyword ))
{
$view_sql="select * from news where Title like '%$keyword%'";
//$view_sql="select * from news where ID=$keyword";
$view=mysql_fetch_array(mysql_query($view_sql));
$msgType = "link";
$rows = mysql_num_rows(mysql_query($view_sql));
if ($rows>0){
$Title = $view[Title];
}else{
$Title ="抱歉,您所选择的关键字在系统中不存在,我们正在不断的完善系统建设";
}
$Description="测试";
$Url="http://www.baidu.com";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $Title, $Description, $Url);
echo $resultStr;
}else{
echo MESS;
}
}else {
echo MESS;
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;
}
}
}
?>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货