python微信支付回调
2019-12-21 本文已影响0人
王哈哈就很棒
# 支付回调
@api.route('/payCallback', methods=['POST'])
def payCallback2():
# 接收微信通知(xml格式)
xml_data = request.data.decode('utf-8')
data = xmltodict.parse(xml_data)
# 微信支付订单号
transaction_id = data.get('xml').get('transaction_id')
# 商户订单号
out_trade_no = data.get('xml').get('out_trade_no')
# 现金支付金额
cash_fee = data.get('xml').get('cash_fee')
# 订单金额
total_fee = data.get('xml').get('total_fee')
# 业务结果
result_code = data.get('xml').get('result_code')
# 支付完成时间
time_end = data.get('xml').get('time_end')
# 用户标识
openid = data.get('xml').get('openid')
# 保存订单信息到数据库
order_info = OrderInfo()
order_info.transaction_id = transaction_id
order_info.out_trade_no = out_trade_no
order_info.cash_fee = cash_fee
order_info.total_fee = total_fee
order_info.result_code = result_code
order_info.time_end = time_end
order_info.openid = openid
order_info.datetime = time.strftime('%Y-%m-%d %H:%M:%S')
try:
db.session.add(order_info)
db.session.commit()
except Exception as e:
print('err->', e)
# 商户处理后同步返回给微信参数,告诉微信已经支付完成
params = {
'return_code': 'SUCCESS',
'return_msg': 'OK'
}
# 解析字典数据为xml格式返回为微信
xml_data = xmltodict.unparse({'xml': params}, encoding='UTF-8')
resp = make_response(xml_data)
resp.headers["Content-type"] = "application/xml;charset=UTF-8"
return resp