当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,我在服务器上为什么接收不到任何消息???

lintian1234567 2014-03-01 02:52:08
急急急,请微信开发的大侠帮忙啊!
提交URL和TOKEN之后,提示的是提交成功了.我的URL是http://219.229.132.204/wang/echo_test.php
echo_test.php实现的功能是把用户输入的文本信息重新返回给用户(只是简单的测试)
echo_test.php的代码是如下,加入一个输出函数是为了测试。然后给公众平台输入一个文本,例如:“我们”,微信上没有任何的反映。测试输出,居然是checkSignature is wrong ,这是怎么回事,不是验证成功了吗?
<?php

define("TOKEN","mytoken");

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;
}
}


function echo_server_log($log)
{
file_put_contents("log.txt", $log,FILE_APPEND);
}

if(false==checkSignature())
{
echo_server_log("checkSignature is wrong \\n");
exit(0);
}

$echostr=$_GET['echostr'];

if($echostr)
{
echo echostr;
exit (0);

}

$PostData=file_get_contents("php://input");
if(!$PostData)
{
echo_server_log("wrong input! PostData is NULL\\n");

echo "wrong input!";
exit(0);

}

$xmlObj=simplexml_load_string($PostData,'SimpleXMLElement',LIBXML_NOCDATA);
if(!$xmlObj)
{
echo_server_log("wrong input! xmlObj is NULL\\n");
echo "wrong input!";
exit(0);
}

$fromUserName=$xmlObj->FromUserName;

$toUserName=$xmlObj->ToUserName;

$msgType=$xmlObj->MsgType;

if('text'!=$msgType)
{
$retMsg='只支持文本消息';

}
else
{
$content=$xmlObj->Content;
$retMsg=$content;
}

$retTmp=" <xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
$resultStr=sprintf($retTmp,$fromUserName,$toUserName,time(),$retMsg);
echo $resultStr;

?>
...全文
2375 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchao857086 2016-03-31
  • 打赏
  • 举报
回复
我也遇到这个问题了,楼主解决了吗?
qq_33867526 2016-03-15
  • 打赏
  • 举报
回复
我想问问楼主解决了吗??我也遇到这个问题。。。
KK3K2005 2015-02-13
  • 打赏
  • 举报
回复
看下微信的调试接口
mika85489 2015-02-12
  • 打赏
  • 举报
回复
这帖子是发的位置不对吗?为什么没有人回复! 同求解答!
befree 2015-02-12
  • 打赏
  • 举报
回复
你发在apache.... 那个东东...

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧