Volver al índice
Modo oscuro
Stripe

Stripe por Santiago Soñora

Este tutorial está diseñado para guiar a quienes desean aprender más acerca de Stripe. Es ideal para un nivel medio.

Stripe es una plataforma de tecnología financiera líder que permite a negocios de todos los tamaños aceptar pagos en línea de forma segura, gestionar suscripciones, emitir facturas y construir plataformas complejas. Con un enfoque API-first, Stripe proporciona SDKs robustos para los lenguajes de programación más populares, facilitando a los desarrolladores integrar funcionalidades de pago avanzadas tanto en el lado del servidor como del cliente. Esta guía de nivel intermedio explora los productos clave de Stripe (como Checkout para páginas de pago alojadas, Elements para formularios personalizados, Billing para gestión de suscripciones y facturación recurrente, y Radar para prevención de fraude), la importancia de manejar eventos asíncronos mediante Webhooks, la gestión de Claves API (modo test y live), y las consideraciones de seguridad (ayuda con cumplimiento PCI). Cubre cómo usar el Dashboard de Stripe para monitorear transacciones y clientes, y la infraestructura que proporciona para manejar diversas formas de pago globalmente.

“Hola, mundo” en Stripe

El 'Hola, mundo' de Stripe: crear un checkout simple y seguro con Stripe usando Python y el microframework web Flask. Este código configura una sesión de checkout del lado del servidor para redirigir al cliente a una página de pago alojada por Stripe.

📋 Copiar
# **Prerrequisitos:** Instalar Flask (pip install Flask) y el SDK de Stripe (pip install stripe).
# Asegurate de tener tu clave secreta de prueba de Stripe (empieza con sk_test_...).
# **Nota:** Este es solo el codigo del lado del servidor para crear la sesion.
# Para que esto funcione, necesitas ejecutar esta aplicacion Flask y tener una URL publica (ej: usando ngrok) para las success_url y cancel_url que Stripe pueda redirigir al cliente.

import stripe
import os # Para cargar la clave API de forma segura
from flask import Flask, redirect

app = Flask(__name__)

# Cargar clave secreta de Stripe de forma segura (recomendado via variable de entorno)
stripe.api_key = os.getenv('STRIPE_SECRET_KEY')

# Define la ruta para iniciar el checkout
@app.route('/create-checkout-session', methods=['POST']) # Comunmente es POST, no GET
def create_checkout_session():
    try:
        session = stripe.checkout.Session.create(
            line_items=[{
                'price_data': {
                    'currency': 'usd',
                    'product_data': {
                        'name': 'Taza de Café Especial',
                        'description': 'Una taza de ceramica de alta calidad.'
                    },
                    'unit_amount': 2000, # Monto en la unidad mas pequeña de la moneda (20.00 USD)
                },
                'quantity': 1,
            }],
            mode='payment', # O 'subscription' para suscripciones
            success_url='https://tudominio.com/success?session_id={CHECKOUT_SESSION_ID}', # URL a la que redirigir tras pago exitoso
            cancel_url='https://tudominio.com/cancel', # URL a la que redirigir si el cliente cancela
            # Opcional: añadir customer, metadata, etc.
        )
        # Redirige al cliente a la URL del Checkout de Stripe
        return redirect(session.url, code=303)

    except Exception as e:
        return str(e)

# Rutas de ejemplo para manejar la redireccion de Stripe (necesitan implementacion real)
@app.route('/success')
def success():
    # Aqui puedes mostrar un mensaje de exito al cliente.
    # Para confirmar el pago de forma segura, es mejor usar Webhooks (evento checkout.session.completed).
    return '¡Pago exitoso! Gracias por tu compra.'

@app.route('/cancel')
def cancel():
    # Aqui puedes mostrar un mensaje al cliente si cancelo el checkout.
    return 'Checkout cancelado.'

# Para ejecutar la app (solo para desarrollo):
# if __name__ == '__main__':
#    app.run(port=4242)

Resultado:

Output
Al acceder a la ruta '/create-checkout-session' (ej: con un formulario POST), el servidor crea una sesión de Checkout en Stripe y redirige al usuario a una página de pago segura alojada en stripe.com para completar la transacción. Tras el pago, el usuario es redirigido a `success_url` o `cancel_url`.

Comandos básicos

Familiarizarse con estos comandos es esencial para interactuar eficientemente con Stripe:

Conceptos Clave

Comprender estos conceptos fundamentales te ayudará a dominar Stripe de forma más organizada y eficiente:

Casos de uso

Algunos ejemplos de aplicaciones prácticas donde se utiliza Stripe:

Consejos para Principiantes

Aquí tienes algunas recomendaciones para facilitar tus inicios en Stripe:

Herramientas relacionadas

Si te interesa Stripe, también podrías explorar estas herramientas:

Recursos útiles

Amplía tus conocimientos con estos enlaces y materiales: