微信支付提示libxml_disable_entity_loader错误的解决办法(php5.3以下会出现这个错误)

详细分析请看下方:

当普通微信用户向公众账号发送消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,因此消息是以XML格式的数据包发送的。
 1)首先得到xml数据包信息:
    
$postStr = $GLOBALS[“HTTP_RAW_POST_DATA”];
2)然后我们可以看到这个函数中有一个这样的语句:
    
libxml_disable_entity_loader(true);


这个语句直接百度的时候,查到的信息是做安全防御用的:对于PHP,由于simplexml_load_string 函数的XML解析问题出现在libxml库上,所以加载实体前可以调用这样一个函数,所以这一句也应该是考虑到了安全问题。 

3)得到了数据之后,然后我们就是要解析微信服务器发送过来的xml数据包了,这里执行的是:
    
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement’, LIBXML_NOCDATA);
从语法来看,应该是对得到的postStr数据进行解析吧,解析之后就得到了我们需要的信息了: 

解决方案:

注释掉     libxml_disable_entity_loader(true);  即可

在 WxPay.Data.php 文件里面!

未经允许不得转载:淘淘源码吧 » 微信支付提示libxml_disable_entity_loader错误的解决办法(php5.3以下会出现这个错误)