美文网首页
python微信支付回调

python微信支付回调

作者: 王哈哈就很棒 | 来源:发表于2019-12-21 21:43 被阅读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
    

    相关文章

      网友评论

          本文标题:python微信支付回调

          本文链接:https://www.haomeiwen.com/subject/dfknnctx.html