<?php define(
"TOKEN"
,
"weixin"
);
$wechatObj
=
new
wechatCallbackapiTest();
$wechatObj
->responseMsg();
function
youdaofanyi(
$keyword
)
{
$url
=
'http://fanyi.youdao.com/openapi.do?keyfrom=coolrand&key=545706258&type=data&doctype=json&version=1.1&q='
.
$keyword
;
$f
=
new
SaeFetchurl();
$output
=
$f
->fetch(
$url
);
$message
= json_decode(
$output
,true);
$errorcode
=
$message
[
'errorCode'
];
$phonetic
=
$message
[
'basic'
][
'$phonetic'
];
$explains1
=
$message
[
'basic'
][
'explains'
][
'0'
];
$explains2
=
$message
[
'basic'
][
'explains'
][
'1'
];
$explains3
=
$message
[
'basic'
][
'explains'
][
'2'
];
$trans
=
$message
[
'translation'
][0];
return
"哈哈"
.
"\n"
.
$trans
.
"\n"
.
$phonetic
.
"\n"
.
$explains1
;
}
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;
$keyword
= trim(
$postObj
->Content);
$time
= time();
$textTpl
= "<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>%s</createtime>
<msgtype></msgtype>
<content></content>
<funcflag>0<funcflag>
</funcflag></funcflag></xml>";
if
(!
empty
(
$keyword
))
{
if
((
eregi
(
"a"
,
$keyword
))){
$msgType
=
"text"
;
$contentStr
= youdaofanyi(
$keyword
);
$resultStr
= sprintf(
$textTpl
,
$fromUsername
,
$toUsername
,
$time
,
$msgType
,
$contentStr
);
echo
$resultStr
;
}
else
{
$msgType
=
"text"
;
$contentStr
=
"欢迎"
;
$resultStr
= sprintf(
$textTpl
,
$fromUsername
,
$toUsername
,
$time
,
$msgType
,
$contentStr
);
echo
$resultStr
;
}
}
else
{
echo
"asd"
;
}
}
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;
}
}
}
?>