Proyecto en python-django para verificar la validez de números de tarjetas de crédito, e identificar el emisor.
Se recomienda el uso de Docker, con Docker activo, ejecutar los siguientes comandos:
git clone https://github.com/Jcmantillam/credit_card_validator.git
cd card_validator
docker-compose build
docker-compose up
Para realizar la validación, se ha utiilizado como base el artículo: https://es.wikipedia.org/wiki/N%C3%BAmero_de_tarjeta_bancaria. Con base a este artículo, las siguientes tarjetas se encuentran soportadas:
- American Express
- Diners Club
- Discover
- JCB
- MasterCard
- Visa
Las pruebas realizadas se encuentran en /cardverifier/tests
:
docker-compose run web python3 manage.py test
El servicio habilitado, permite que dado un número de tarjeta de crédito, se verifique su validez y su entidad emisora.
- /verify_card
-
URL: <api/v1/verify_card/>
-
Métodos soportados:
POST
-
Parámetros de datos (POST) Requeridos:
card_number=[String]
-
Respuesta:
- Código: 201
- Contenido:
{ "valid": true, "emisor": "Visa" }
- Código: 201
- Entradas válidas
Entrada:
{ "card_number": "4013021266290" }
- Respuesta:
{ "valid": true, "emisor": "Visa" }
Entrada:
{ "card_number": "370485935825278" }
- Respuesta:
{ "valid": true, "emisor": "American Express" }
Entrada:
{ "card_number": "6011 5947 8671 7005" }
- Respuesta:
{ "valid": true, "emisor": "Discover" }
- Respuesta:
- Entradas inválidas o erróneas
Entrada:
{ "card_number": "123456789" }
- Respuesta:
{ "valid": false }
Entrada:
{ "card_number": "a370485935825278" }
- Respuesta:
{ "not_digit": [ "'a' is not a digit." ] }
- Respuesta: