Este proyecto muestra cómo procesar pagos por internet con tarjeta de crédito usando Stripe, una de las plataformas de pagos más extendidas del mundo. La implementación cubre el flujo completo: crear un cliente en Stripe, asociarle un método de pago, recuperar un producto con su precio y ejecutar el cobro. Todo ello en más de 135 divisas, con manejo de errores incluido.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mouredev/logica-aplicada/llms.txt
Use this file to discover all available pages before exploring further.
Dificultad: Fácil · Publicado: 10/02/2025
Objetivos de aprendizaje
Al completar este proyecto aprenderás a:- Recoger y registrar información del usuario como cliente de Stripe.
- Realizar un cargo asociado a un importe y una divisa.
- Gestionar productos y precios a través de la API de Stripe.
- Manejar errores específicos de Stripe (
CardError,StripeError).
Configuración
Instalar dependencias
Desde la carpeta del proyecto, instala las dependencias con pip:El fichero
requirements.txt contiene:Configurar las variables de entorno
Crea un fichero Puedes obtener tu clave desde el Dashboard de Stripe. Usa siempre claves de test (
.env en la raíz del proyecto y añade tu clave secreta de Stripe:sk_test_...) mientras desarrollas.Código del proyecto
A continuación se muestra el código completo del ficherostripe_payments_gateway.py. Cada función encapsula una operación concreta de la API de Stripe.
Descripción de las funciones
| Función | Descripción | Retorna |
|---|---|---|
create_user(name, email) | Crea un cliente (Customer) en Stripe con nombre y correo. | client.id |
create_payment_method() | Crea un PaymentMethod de tipo tarjeta usando el token de test tok_visa. | payment_method.id |
add_payment_method_to_user(client_id, payment_method_id) | Vincula el método de pago al cliente mediante PaymentMethod.attach. | — |
get_product() | Recupera el primer producto del catálogo de Stripe. | product_id |
get_product_price(product_id) | Obtiene el precio asociado al producto: identificador, importe y divisa. | (price_id, amount, currency) |
create_payment(client_id, payment_method_id, product_id, amount, currency) | Crea y confirma un PaymentIntent con todos los datos del cobro. | — |
Pruebas en modo test
Stripe ofrece un entorno de pruebas completamente separado del de producción. Mientras uses claves
sk_test_..., ningún cobro real se ejecutará.El token tok_visa utilizado en create_payment_method() simula una tarjeta Visa válida en modo test. Stripe pone a disposición muchos otros tokens para probar distintos escenarios (tarjeta rechazada, fondos insuficientes, autenticación 3D Secure, etc.).Consulta todos los tokens y números de tarjeta disponibles en la documentación de testing de Stripe.- Clave de test: empieza por
sk_test_— úsala siempre durante el desarrollo. - Clave de producción: empieza por
sk_live_— actívala solo cuando tu integración esté lista para cobros reales.
Recursos
Web de Stripe
Página principal de Stripe en español: planes, productos y registro.
Documentación de Stripe
Guía oficial para configurar tu entorno de desarrollo con Stripe.
Testing en Stripe
Referencia completa de tarjetas y tokens de prueba disponibles.
Vídeo tutorial
Explicación paso a paso del desarrollo del proyecto en vídeo.
Contribuciones de la comunidad
Cualquier persona puede aportar su propia implementación de este proyecto en el lenguaje de programación que prefiera. La lógica detrás de Stripe es la misma independientemente del lenguaje: la documentación oficial incluye ejemplos en Python, JavaScript, Ruby, PHP, Java, Go y más. Para enviar tu solución, consulta las instrucciones para contribuir y sigue el proceso de fork y pull request descrito allí.Las contribuciones de la comunidad se añaden a este repositorio como enlaces a los repositorios individuales de cada participante, agrupados por lenguaje de programación.