def show_me_the_money(sender, **kwargs): ipn_obj = sender if ipn_obj.payment_status == ST_PP_COMPLETED: pedido = Pedido.objects.get(numero_pedido=ipn_obj.invoice) carro = Carro.objects.get(pedido=pedido.pk) total = carro.total_carro() today = datetime.now().date() tipos_cambio = TipoCambio.objects.filter(fecha=today) metodo = MetodoPago.objects.get(nombre='Paypal') pago = Pago(cantidad=ipn_obj.mc_gross, id_pago=ipn_obj.txn_id, metodo_pago=metodo, transaccion=ipn_obj.invoice) if ipn_obj.receiver_email != settings.PAYPAL_RECEIVER_EMAIL: pago.descripcion = 'Ocurrio un Error en el email de receptor' pago.save() return for tipo in tipos_cambio: tipo_cambio = tipo.cambio tipo_cambio = round(tipo_cambio, 2) total_dolares = round(total / tipo_cambio, 2) if ipn_obj.mc_gross == total_dolares and ipn_obj.mc_currency == 'USD': pago.valido = True pago.descripcion = 'Todo Perfecto' else: pago.descripcion = 'El pago tiene datos incorrectos' pago.save() pedido.pago_pedido = pago pedido.metodo_pago = metodo pedido.save() carro.estado = carro.ENVIADA carro.save()