微信公众号开发---微信请求服务端取值问题
2015-11-12 18:49
405 查看
最近开发了微信公众号,学了一些新东西,在这记录一下,也希望能帮助到别人
以上是处理报文的部分代码
这个不用说了,接受name为mpxml的值
但是在服务端代码上线之后,这样写应该是接受不到微信发送服务端的请求报文(xml格式)的。
或者
都可以接受到微信的请求报文,推荐第二种方法,它给内存带来的压力较小,并且不需要任何特殊的php.int设置
public function responseMsg() { // $requestStr = $_REQUEST['mpxml']; //线下测试放开 $requestStr = $GLOBALS["HTTP_RAW_POST_DATA"];//上线放开 if($requestStr=='')$requestStr = file_get_contents("php://input");//上线放开 $this->Log->output('req', "请求报文" . $requestStr); if (!empty($requestStr)) { $postObj = simplexml_load_string($requestStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $msgType = $postObj->MsgType; $keyword = trim($postObj->Content); $arr = array('fromUsername' => $fromUsername, 'toUsername' => $toUsername, 'msgType' => $msgType, 'keyword' => $keyword, 'postObj' => $postObj); $responseStr = $this->controllers->index($arr); $this->Log->output('res', "应答报文" . $responseStr); echo $responseStr; } else { echo ''; exit; } }
以上是处理报文的部分代码
$requestStr = $_REQUEST['mpxml'];
这个不用说了,接受name为mpxml的值
但是在服务端代码上线之后,这样写应该是接受不到微信发送服务端的请求报文(xml格式)的。
$requestStr = $GLOBALS["HTTP_RAW_POST_DATA"];//上线放开
或者
$requestStr = file_get_contents("php://input");//上线放开
都可以接受到微信的请求报文,推荐第二种方法,它给内存带来的压力较小,并且不需要任何特殊的php.int设置
相关文章推荐
- 一个关于if else容易迷惑的问题
- 社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- 微信悄悄升级群聊功能:个人微信营销号的福音
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- 我是运营,我没有假期
- 如何做到日消息量100万的微信公众号?
- 论微信取消推送功能的可能性(原创)
- 如何成为一名专家级的开发人员
- PHP数据库长连接mysql_pconnect的细节
- 微信的成功,靠的是QQ导流吗?
- Php Installing An Expansion
- 微信服务号推送模板消息接口