define(
"TOKEN"
,
"endsh"
);
$wechatObj
=
new
wechatCallbackapiTest();
$wechatObj
->responseMsg();
class
wechatCallbackapiTest
{
public
function
valid()
{
$echoStr
=
$_GET
[
"echostr"
];
if
(
$this
->checkSignature()){
echo
$echoStr
;
exit
;
}
}
public
function
responseMsg()
{
//$postStr = file_get_contents("php://input");//因为很多都设置了register_globals禁止,不能用$GLOBALS["HTTP_RAW_POST_DATA"
$postStr
=
file_get_contents
(
"php://input"
); //php5.6以后推荐使用
if
(!
empty
(
$postStr
)){
$postObj
= simplexml_load_string(
$postStr
,
'SimpleXMLElement'
, LIBXML_NOCDATA);
$fromUsername
=
$postObj
->FromUserName;
$toUsername
=
$postObj
->ToUserName;
$keyword
=
$postObj
->Content;
$time
= time();
$textTpl
= "
%s
0
";
if
(!
empty
(
$keyword
))
{
$msgType
=
"text"
;
$contentStr
=
"欢迎访问神雕微信小助手!你的id是"
+
$toUsername
;
$resultStr
= sprintf(
$textTpl
,
$fromUsername
,
$toUsername
,
$time
,
$msgType
,
$contentStr
);
echo
$resultStr
;
}
else
{
echo
"Input something..."
;
}
}
else
{
echo
""
;
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;
}
}
}
?>