// 我的本意是想做一个关注微信公众号就自动回复一个welcome的效果,想了很多办法,也查了很多资料,但是就是没有用
// 调试也成功了,但是在手机上用的时候,关注就是没反应,然后发送消息还显示我的公众号暂时停止服务
// 真的很疲倦。。。我是新手,这个问题卡了两天了,快疯了。求大神给指点,详细一些,感激不尽!
<?php
public function index{
//获得参数 signature nonce token timestamp echostr
$nonce = $_GET['nonce'];
$token = 'paitson';
$timestamp = $_GET['timestamp'];
$echostr = $_GET['echostr'];
$signature = $_GET['signature'];
//形成数组,然后按字典序排序
$array = array();
$array = array($nonce, $timestamp, $token);
sort($array);
//拼接成字符串,sha1加密 ,然后与signature进行校验
$str = sha1( implode( $array ) );
if( $str == $signature && $echostr ){
//第一次接入weixin api接口的时候
echo $echostr;
exit;
}
else {
$this -> reponseMsg();
}
}
public function reponseMsg{
//收到数据
$postArr = $GLOBALS['HTTP_RAM_POST_DATA'];
//处理消息类型并设置回复内容
$postObj = simplexml_load_string( $postArr );
if ( strtolower ($postObj -> MsgType) =='event' ){
if ( strtolower ($postObj -> Event =='subscribe' ) ) {
$toUser = $postObj -> FromUserName;
$fromUser = $postObj -> toUserName;
$time = time();
$msgtype = "text";
$content = 'welcome!';
$template = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>"
$info = sprintf( $template , $toUser , $fromUser , $time , $msgType , $content );
}
}
}
?>
添加回答
举报
0/150
提交
取消