Introducción a Django Merchant con Authorizet.net
Juan Pablo Romero
Software EngineerDjango Merchant es una aplicación que permite realizar transacciones electrónicas utilizando las diferentes pasarelas de pagos online mas sobresalientes del mercado, como lo son Authorize.net y Paypal. Lo mas interesante de esta aplicación es que se puede acceder a las funcionalidades de las diversas pasarelas de pagos online desde una sola API, esto es así gracias a la arquitectura de la aplicación (basada en Gateways), permitiendo que cualquier otro desarrollador Python extienda las funcionales de esta excelente herramienta de manera cómoda y estructurada.
[caption id="attachment_2761" align="aligncenter" width="300"]
Django + Authorize.net[/caption]
En esta entrada de Blog el objetivo es aprender a:
- Instalar y configurar Django Merchant.
- Cargar el Gateway de Authorize.net y validar una tarjeta de crédito (modo Test).
- Aprobar una compra usando el método Auth Only (modo Test).
1. Instalar y configurar Django Merchant.
Recomiendo instalar la versión de desarrollo de esta aplicación (con el objetivo de acceder a las ultimas actualizaciones y funcionalidades), esta aplicación se encuentra alojada en Github.
Con el siguiente comando se instala la versión de desarrollo:
Una vez instalada necesitaremos configurar los siguientes valores en nuestro fichero settings.py.
[gist id=47dd0f527261c222bfe6 ]
No olviden ejecutar el comando ./manage.py syncdb para activar la aplicación en el proyecto y ./manage.py migrate para aplicar las migraciones de la base de datos (es necesario tener instalado y configurado south).
Además es necesario poner las siguientes constantes:
[gist id=cfe718955bd30c0a4d9a ]
Los valores de LOGIN_ID y TRANSACTION_KEY, deberán ser obtenidos desde una cuenta de Authorize.Net developer test.
2. Cargar el Gateway de Authorize.net y validar una tarjeta de crédito (modo Test).
Supongamos que se validará una tarjeta de crédito dentro de una View, el código se vería de la siguiente manera:
[gist id=cdc3e34b28a5d9ae7025 ]
La variable response contiene un diccionario con dos llaves: 'status' y 'response', status toma dos valores "SUCESS" o "FAILED" y response devuelve un objeto con diferente atributos y métodos.
Tenga en cuenta que cada Gateway soporta diferentes tarjetas de crédito, por tal motivo si se ingresa una tarjeta de crédito no soportada se lanzara una excepción, la cual es necesario capturar y tratar como se crea conveniente.
3. Aprobar una compra usando el método Auth Only (modo Test).
[gist id=af1c1cc96fbf2c60ea64 ]
El código anterior realiza la carga del monto de la compra (100 dolares) a la tarjeta de crédito de ejemplo. Si todo sale bien se enviará un correo indicándoles el estado de la transacción.
Eso es todo, espero que les haya sido de utilidad esta información y empiecen a sacarle todo el provecho a esta excelente herramienta Open Source.
Si quieren ampliar la información sobre Django Merchant pueden visitar su sitio de documentación.
Nos vemos en una próxima EntryAxiacore :D.
Written by Juan Pablo Romero
Juan Pablo designs and builds robust software solutions with a focus on performance and usability. His problem-solving skills and attention to detail ensure high-quality and efficient applications.