Algunas ayudas para Payu
Igor Támara
Senior Software EngineerIntegrarse 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
- Foto original
- Documentación de Payu para desarrolladores
- Gist
Written by 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.