Algunas ayudas para Payu

IT Igor Támara Igor Támara

Igor Támara

Senior Software Engineer
1 min read.

Integrarse con Payu es sencillo, y ahorrar tiempo para hacerlo desde Python es deseable, aquí compartimos un gist para Python 2.x, en el resto de este escrito mostramos cómo usar estas funciones en el momento del envío del formulario, mostrar la página de respuesta con la redirección desde la plataforma y uso de datos en la confirmación que viene por POST.

Cuando se va a firmar para garantizar que los datos enviados son los esperados se usaría:

from payu_helpers import payu_signature
signature = payu_signature([
    api_key,
    merchant_id,
    reference_code,
    total_amount,
    currency,
])


Cuando vamos a procesar la página de respuesta se usaría:

from payu_helpers import payu_signature
from payu_helpers import payu_rounder
new_value = payu_rounder(request.GET['TX_VALUE'])
signature = payu_signature([
    settings.PAYU['api_key'],
    request.GET['merchantId'],
    request.GET['referenceCode'],
    new_value,
    request.GET['currency'],
    request.GET['transactionState'],
])
if request.GET['signature'] != signature:
    # Lo que sea que se va a hacer cuando la firma no es válida


Cuando vamos a procesar la página de confirmación en el método POST:

from payu_helpers import payu_signature
from payu_helpers import payu_decimal
value = payu_decimal(data['value'])
signature = payu_signature([
    settings.PAYU['api_key'],
    settings.PAYU['merchant_id'],
    data['reference_sale'],
    value,
    data['currency'],
    data['state_pol'],
])
if unicode(data['sign']) != signature:
    # Lo que sea que se va a hacer cuando la firma no es válida


Puede probar las funciones al descargar el gist con:

python payu_helper.py

Enlaces


Written by Igor Támara

IT Igor Támara Igor Támara

A seasoned developer, Igor brings expertise in designing and building complex software systems. With a focus on quality and performance, they lead projects that drive innovation and deliver reliable solutions to meet user needs.

Newsletter

Subscribe to our newsletter:

Read more

Ábreme la puerta

Levantarse a abrir la puerta debería ser una decisión y no una obligación, y así lo han entendido las empresas de seguridad ...

· 1 min read.

Django y selects encadenados

Vamos a ver un ejemplo de cómo escribir formularios con selects encadenados en Django.

· 1 min read.

Ascii Art

Algunas personas nos han preguntado acerca del batman que utilizamos en nuestro código fuente en todos los proyectos que real...

· 1 min read.

Build Once. Own Forever.