Este proyecto implementa un servicio para la tokenización de tarjetas de crédito. Utiliza TypeScript, Node.js, Express y Jest para las pruebas unitarias.
Las pasarelas de pago suelen almacenar las tarjetas de crédito encriptadas para garantizar la seguridad de la información sensible. El proceso de tokenización convierte los datos de la tarjeta en un token único que puede ser utilizado para realizar transacciones de forma segura.
- Desarrollo Backend: TypeScript, Node.js, Express
- Pruebas Unitarias: Jest
- Base de Datos No Relacional: Redis
- Clona este repositorio:
git clone https://github.com/challenge-develop/credit-card-tokenization.git
- Instala las dependencias:
npm install
- Crea un archivo
.env
en la raíz del proyecto y configura las variables de entorno necesarias utilizando el archivo.env.example
como referencia.
- Ejecuta el servidor:
npm run dev
- Realiza las solicitudes a los endpoints proporcionados para crear y obtener tokens de tarjeta de crédito.
- Todas las solicitudes al API deben incluir el siguiente encabezado:
x-api-key: tu-clave-de-api
POST /api/v1/credit-card/token
: Crea un token para una tarjeta de crédito.- Parámetros de la solicitud:
{
"card_number": "1458 8965 4785 4568",
"cvv": "456",
"expiration_month": "12",
"expiration_year": "2025",
"email": "[email protected]"
}
- Respuesta exitosa:
{
"statusCode": 201,
"data": {
"token": "3a25c4dddedf4fc9fddebf6dd652d613"
},
"message": "Credit Card tokenization successfully completed"
}
GET /api/v1/credit-card/token/:tokenId
: Obtiene los datos de una tarjeta de crédito a partir de un token.- Respuesta exitosa:
{
"statusCode": 200,
"data": {
"creditCard": {
"card_number": "1458 8965 4785 4568",
"expiration_month": "12",
"expiration_year": "2025",
"email": "[email protected]"
}
},
"message": "Credit Card decoded successfull"
}
Si deseas contribuir a este proyecto, sigue estos pasos:
- Haz un fork del repositorio
- Crea una nueva rama:
git checkout -b feature-nueva
- Realiza tus cambios y haz commit:
git commit -am 'Agrega una nueva característica'
- Haz push a la rama:
git push origin feature-nueva
- Envía un pull request