Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

189
Vistas
local variable 'verify_payment' referenced before assignment

I'm having the local variable referenced before assignment error and I have tried a lot of ways that I can use to fix this. Any help would be greatly appreciated

This is my Views.py (the error after the top of the second if statement)

def call_back_url(request):
    reference = request.GET.get('reference')
    # We need to fetch the reference from PAYMENT
    check_pay = PayHistory.objects.filter(paystack_charge_id=reference).exists()
    if check_pay == False:
        # This means payment was not made error should be thrown here...
        print("Error")
    else:
        payment = PayHistory.objects.get(paystack_charge_id=reference)
        # We need to fetch this to verify if the payment was successful.
        def verify_payment(request):
            url = 'https://api.paystack.co/transaction/verify/'+reference
            headers = {
                'Authorization': 'Bearer '+settings.PAYSTACK_SECRET_KEY,
                'Content-Type' : 'application/json',
                'Accept': 'application/json',
                }
            datum = {
                "reference": payment.paystack_charge_id
                }
            x = requests.get(url, data=json.dumps(datum), headers=headers)
            if x.status_code != 200:
                return str(x.status_code)
            
            results = x.json()
            return results
    initialized = verify_payment(request)
    if initialized['data']['status'] == 'success':
        PayHistory.objects.filter(paystack_charge_id=initialized['data']['reference']).update(paid=True)
        new_payment = PayHistory.objects.get(paystack_charge_id=initialized['data']['reference'])
        instance = Membership.objects.get(id=new_payment.payment_for.id)
        sub = UserMembership.objects.filter(reference_code=initialized['data']['reference']).update(membership=instance)
        user_membership = UserMembership.objects.get(reference_code=initialized['data']['reference'])
        Subscription.objects.create(user_membership=user_membership, expires_in=dt.now().date() + timedelta(days=user_membership.membership.duration))
        return redirect('subscribed')
    return render(request, 'payment.html')


def subscribed(request):
    return render(request, 'subscribed.html')
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

try:

def verify_payment(request):
    url = 'https://api.paystack.co/transaction/verify/'+reference
    headers = {
        'Authorization': 'Bearer '+settings.PAYSTACK_SECRET_KEY,
        'Content-Type' : 'application/json',
        'Accept': 'application/json',
        }
    datum = {
        "reference": payment.paystack_charge_id
        }
    x = requests.get(url, data=json.dumps(datum), headers=headers)
    if x.status_code != 200:
        return str(x.status_code)
    
    results = x.json()
    return results

def call_back_url(request):
    reference = request.GET.get('reference')
    # We need to fetch the reference from PAYMENT
    check_pay = PayHistory.objects.filter(paystack_charge_id=reference).exists()
    if check_pay == False:
        # This means payment was not made error should be thrown here...
        print("Error")
    else:
        payment = PayHistory.objects.get(paystack_charge_id=reference)
        # We need to fetch this to verify if the payment was successful.

    initialized = verify_payment(request)
    if initialized['data']['status'] == 'success':
        PayHistory.objects.filter(paystack_charge_id=initialized['data']['reference']).update(paid=True)
        new_payment = PayHistory.objects.get(paystack_charge_id=initialized['data']['reference'])
        instance = Membership.objects.get(id=new_payment.payment_for.id)
        sub = UserMembership.objects.filter(reference_code=initialized['data']['reference']).update(membership=instance)
        user_membership = UserMembership.objects.get(reference_code=initialized['data']['reference'])
        Subscription.objects.create(user_membership=user_membership, expires_in=dt.now().date() + timedelta(days=user_membership.membership.duration))
        return redirect('subscribed')
    return render(request, 'payment.html')

def subscribed(request):
    return render(request, 'subscribed.html')

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda