首先是服务器环境,本次没有使用Linux,也是问题所在最恶心的地方。
服务器:Windows Server
服务器软件:XAMPP
PHP版本:5.4+
所用框架:Laravel/Lumen 5.1
所遇到问题:通知页面(Notify.php)无法获取POST信息,只显示begin notify,不进入消息通知回调。
简单描述:
在反复调试,反复支付N次后发现不是Laravel/Lumen的系统问题,也不是.htaccess的问题,其主要问题在于$GLOBALS['HTTP_RAW_POST_DATA']无法获取数据,可以使用file_get_contents("php://input")来代替。
具体解决方式和办法:
打开微信支付SDK,定位到lib\WxPay.Nofity.php,在414行代码处,将
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
替换为:
$xml = file_get_contents("php://input");
然后在消息循环文件Notify.php中测试即可!
来源:oschina
链接:https://my.oschina.net/u/118996/blog/692857