PHP怎么解析微信支付结果返回的xml

键盘浪人 发布于 2015/05/08 22:58
阅读 11K+
收藏 4

PHP实现微信支付,微信支付宝返回的xml结果如下:

<xml>
   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
   <attach><![CDATA[支付测试]]></attach>
   <bank_type><![CDATA[CFT]]></bank_type>
   <fee_type><![CDATA[CNY]]></fee_type>
   <is_subscribe><![CDATA[Y]]></is_subscribe>
   <mch_id><![CDATA[10000100]]></mch_id>
   <nonce_str><![CDATA[5d2b6c2a8db53831f7eda20af46e531c]]></nonce_str>
   <openid><![CDATA[oUpF8uMEb4qRXf22hE3X68TekukE]]></openid>
   <out_trade_no><![CDATA[1409811653]]></out_trade_no>
   <result_code><![CDATA[SUCCESS]]></result_code>
   <return_code><![CDATA[SUCCESS]]></return_code>
   <sign><![CDATA[B552ED6B279343CB493C5DD0D78AB241]]></sign>
   <sub_mch_id><![CDATA[10000100]]></sub_mch_id>
   <time_end><![CDATA[20140903131540]]></time_end>
   <total_fee>1</total_fee>
   <trade_type><![CDATA[JSAPI]]></trade_type>
   <transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id>
</xml>

请问PHP该怎么来解析出里面的各节点的值。菜鸟问题,菜鸟提问。拜托各位大牛。望指教,有案例最好。感激不尽

加载中
1
大蓝妹
大蓝妹

$msg = array();

$postStr = file_get_contents('php://input');

$msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

键盘浪人
键盘浪人
感谢
1
渔樵耕读
渔樵耕读

$msg = array();

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

$msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

0
Tuesday
Tuesday

搜索一下, xml转array.

有个函数, 一下搞定..

0
__JM_Joy__
__JM_Joy__
这接口真丑,哈哈哈哈哈!
0
Mr_GG
Mr_GG
/**
 * 作用:将xml转为array
 */
public function xmlToArray($xml)
{		
   //将XML转为array        
   $array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);		
    return $array_data;
}
//获取节点的值 也可以这样



0
zigzagroad
zigzagroad
@eechen 你的菜来了
zigzagroad
zigzagroad
不是,我不搞PHP,只是at你,无他
eechen
eechen
http://php.net/simplexml_load_string 楼上都说了用这个函数可以把XML转成数组进行操作,难道你认为还有更方便的做法?
返回顶部
顶部