1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| from fleader import fleader as rq from public.v1.business.utils.conn_mysql import conn_mysql from public.v1.business.user.loginx import updata_order import conf
def apipay_notify(request): out_trade_no = request.form.get('out_trade_no',default='') trade_no = request.form.get('trade_no',default='') trade_status = request.form.get('trade_status',default='') total_amount = request.form.get('total_amount',default='')
if trade_status=='TRADE_FINISHED': pass if trade_status=='TRADE_SUCCESS': updata_order(out_trade_no,trade_no,total_amount,1) return 'success'
def vxpay_notify(request): arr=vx_xml2dict(request.data) out_trade_no=rq.var(arr,'out_trade_no') trade_no=rq.var(arr,'transaction_id') trade_status = rq.var(arr,'result_code') total_amount = rq.var(arr,'cash_fee','0') if trade_status=='SUCCESS': updata_order(out_trade_no,trade_no,total_amount,2) return '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>'
def vx_xml2dict(xml): from bs4 import BeautifulSoup soup = BeautifulSoup(xml, "xml") xml = soup.find('xml') if not xml: return {} data = dict([(item.name, item.text) for item in xml.find_all()]) return data
def vx_dict2xml(data): xml = [] for k in sorted(data.keys()): v = data.get(k) if k == 'detail' and not v.startswith('<![CDATA['): v = '<![CDATA[{}]]>'.format(v) xml.append('<{key}>{value}</{key}>'.format(key=k, value=v)) return '<xml>{}</xml>'.format(''.join(xml))
|