微信入坑第二弹【自动回复消息上】

来源:互联网 发布:卸载软件设置密码 编辑:程序博客网 时间:2024/06/03 17:10

功能实现:

不管用户发送什么消息,都回复一条"谢谢您的关注"。

<span style="font-family:Courier New;font-size:14px;"><?phpdefine("TOKEN","weixin");$weixinObj = new Wechat();$weixinObj->valid();class Wechat{public function valid(){$echoStr = $_GET['echostr'];//如果是第一次接入if($this->checkSignature() && $echoStr ){echo $echoStr;exit;}else{    $this->responseMsg();   }}//校验方法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;}}/* 普通文本消息<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml>*/public function responseMsg(){    //获取微信服务器POST请求中的数据        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];    if( !empty($postStr) ){            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);            $fromUser = $postObj->FromUserName;            $toUser = $postObj->ToUserName;            $keyword = trim($postObj->Content);            $time = time();                    $template = "<xml>                         <ToUserName><![CDATA[%s]]></ToUserName>                         <FromUserName><![CDATA[%s]]></FromUserName>                         <CreateTime>%s</CreateTime>                         <MsgType><![CDATA[%s]]></MsgType>                         <Content><![CDATA[%s]]></Content>                         </xml>";        if( !empty($keyword) ){            $msgType = 'text';            $content = "谢谢您的关注";            $info = sprintf($template, $fromUser, $toUser, $time, $msgType, $content);            echo $info;        }else{            echo "请输入关键字";//消息为空        }    }else{        echo "";        exit;    }    }}</span>



0 0