微信公共平台php用$GLOBALS["HTTP_RAW_POST_DATA"]收不到信息解决方法
2016-07-22 13:27
701 查看
http://www.cnblogs.com/shendiao/archive/2013/04/24/3041450.html
<?php /** * wechat php test */ //define your token define("TOKEN", "endsh"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->responseMsg(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments $postStr = file_get_contents("php://input"); //extract post data if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = $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 = "欢迎访问神雕微信小助手!你的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; } } } ?>
$postStr = file_get_contents("php://input");//因为很多都设置了register_globals禁止,不能用$GLOBALS["HTTP_RAW_POST_DATA"];
相关文章推荐
- Nodejs获取网络数据并生成Excel表格(未测试0
- 如何通过无线网络真机调试android应用
- asynchttpClient框架关于多文件批量上传的问题,改用xUtil
- nginx配置https
- 上传图片携带参数至服务器工具类
- HttpClient(Post和Get)
- Win10主机无法被外站机器ping通的处置
- freeradius 限制rp-pppoe服务器每一个连接的带宽
- 网络基础篇——路由报表
- golang实现http服务器处理静态文件示例
- HTTP请求与响应码
- HttpUtils 用于进行网络请求的工具类(未测试)
- HttpURLConnection入门
- TCP协议中的三次握手和四次挥手
- 以太帧、ip帧、udp/tcp帧、http报文结构
- 浅谈HTTP中Get与Post的区别
- nagios系列(四)之nagios主动方式监控tcp常用的80/3306等端口监控web/syncd/mysql及url服务
- nagios系列(四)之nagios主动方式监控tcp常用的80/3306等端口监控web/syncd/mysql及url服务
- HTTPS和HTTP的区别
- 访问webview屏蔽https证书