微信支付回调通知,返回的就是XML数据,所以需要转为数据,方便读取数据
有两种取得XML数据的方法:
一、file_get_contents("php://input")
$data = array();
$xml = simplexml_load_string(file_get_contents("php://input"), 'SimpleXMLElement', LIBXML_NOCDATA);
foreach ($xml as $k => $v) {
$data[(string) $k] = (string) $v;
}
二、$GLOBALS['HTTP_RAW_POST_DATA']
//将服务器返回的XML数据转化为数组
$data = array();
$xml = simplexml_load_string($GLOBALS['HTTP_RAW_POST_DATA'], 'SimpleXMLElement', LIBXML_NOCDATA);
foreach ($xml as $k => $v) {
$data[(string) $k] = (string) $v;
}
调用:
$data_sign = $data['sign'];