动态遍历微信异步返回的结果
<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>
#获取微信返回的xml结果,转换格式
xml = xml.decode('utf-8')
#判断return_code状态
result = xml.find('<return_code><![CDATA[SUCCESS]]></return_code>')
if result>0:
#获取<xml>节点
root = ElementTree.fromstring(xml)
new_params = OrderedDict()
eitor = root.getchildren()
for e in eitor:
new_params[e.tag] = e.text
return new_params
其他:通联支付的验签,动态重新遍历异步返回的结果(dict类型,动态遍历一遍)
def new_param(param):
new_params = OrderedDict()
for k in param:
new_params[k] = param[k]
return new_params
网友评论