首页
IT
登录
6mi
u
盘
搜
搜 索
IT
微信公众号加入图灵机器人
微信公众号加入图灵机器人
xiaoxiao
2021-03-25
93
<?php
/**
* wechat php test
*/
//define your token
define(
"TOKEN"
,
"公众号TOKEN"
)
;
define(
"APPID"
,
" 公众号APPID"
)
;
define(
"appsecret"
,
"公众号APPSECRET"
)
;
$wechatObj
=
new
wechatCallbackapiTest()
;
$wechatObj
->
valid
()
;
class
wechatCallbackapiTest {
public function
valid
() {
$echoStr
=
$_GET
[
"echostr"
]
;
//valid signature , option
if
(
$this
->
checkSignature
()){ header(
'content-type:text'
)
;
//$this->getAccessToken();
echo
$echoStr
;
$this
->
responseMsg
()
;
exit
;
} }
public function
responseMsg
() {
//get post data, May be due to the different environments
$postStr
=
$GLOBALS
[
"HTTP_RAW_POST_DATA"
]
;
//extract post data
if
(!
empty
(
$postStr
)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader
(
true
)
;
$postObj
= simplexml_load_string(
$postStr
,
'SimpleXMLElement'
,
LIBXML_NOCDATA
)
;
$fromUsername
=
$postObj
->
FromUserName
;
$toUsername
=
$postObj
->
ToUserName
;
$keyword
= trim(
$postObj
->
Content
)
;
$time
= time()
;
$textTpl
=
"<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>"
;
if
(!
empty
(
$keyword
)) {
$msgType
=
"text"
;
$contentStr
=
$this
->
jiqiren
(
$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
""
;
exit
;
} }
public function
jiqiren
(
$keyword
){ header(
"content-type:text/html;charset=utf-8"
)
;
$arr
=file_get_contents(
"http://www.tuling123.com/openapi/api?key=你的机器人的key&info=
$keyword
"
)
;
$arr
=
json_decode
(
$arr
,
true
)
;
return
$arr
[
'text'
]
;
}
private function
checkSignature
() {
// you must define TOKEN by yourself
if
(!defined(
"TOKEN"
)) {
throw new
Exception(
'TOKEN is not defined!'
)
;
}
$signature
=
$_GET
[
"signature"
]
;
$timestamp
=
$_GET
[
"timestamp"
]
;
$nonce
=
$_GET
[
"nonce"
]
;
$token
=
TOKEN
;
$tmpArr
=
array
(
$token
,
$timestamp
,
$nonce
)
;
// use SORT_STRING rule
sort(
$tmpArr
,
SORT_STRING
)
;
$tmpStr
= implode(
$tmpArr
)
;
$tmpStr
= sha1(
$tmpStr
)
;
if
(
$tmpStr
==
$signature
){
return true
;
}
else
{
return false
;
} } }
?>
转载请注明原文地址: https://ju.6miu.com/read-23675.html
技术
最新回复
(
0
)