Spaces:
Sleeping
Sleeping
import globales | |
import herramientas | |
import conexion_firebase | |
def funcion_generica(platillo): | |
try: | |
return "Hola" | |
except Exception as e: | |
print("Excepci贸n: ", e) | |
# Opci贸n para regresar imagen gen茅rica. (ya no porque se env铆a desde backend.) | |
# return "default.png" | |
return '{"Error 500": e}' | |
def create_checkout_session(price_id, customer_email=None, customer_id=None): | |
""" | |
Crea una nueva Checkout Session para un pago 煤nico. | |
Args: | |
price_id (str): El ID del precio en Stripe para el art铆culo que se va a comprar. | |
customer_email (str, opcional): Email para pre-rellenar o asociar con un cliente existente. | |
customer_id (str, opcional): ID de un cliente existente en Stripe para asociar la sesi贸n. | |
Returns: | |
str: La URL de la Checkout Session, o None si hay un error. | |
""" | |
print("Estoy en create checkout session y el customer ID es: ", customer_id) | |
try: | |
session_params = { | |
'line_items': [{ | |
'price': price_id, | |
'quantity': 1, | |
}], | |
'mode': 'payment', # Para pagos 煤nicos (one-time payment) | |
'success_url': 'https://tudominio.com/gracias?session_id={CHECKOUT_SESSION_ID}', | |
'cancel_url': 'https://tudominio.com/cancelar', | |
'locale': 'es', # Establece el idioma del checkout a espa帽ol | |
'client_reference_id': 'Moibe' | |
} | |
# Opciones para el cliente | |
if customer_id: | |
session_params['customer'] = customer_id | |
elif customer_email: | |
session_params['customer_email'] = customer_email | |
else: | |
# Si no se provee ni customer_id ni customer_email, Stripe puede crear uno si es necesario | |
# O podr铆as pedir el email en el formulario de Checkout. | |
pass | |
# Opcional: Agregar informaci贸n de env铆o si aplica (para productos f铆sicos) | |
# session_params['shipping_address_collection'] = {'allowed_countries': ['US', 'CA', 'MX']} | |
# Opcional: Permitir c贸digos promocionales | |
# session_params['allow_promotion_codes'] = True | |
# Opcional: Agregar metadata a la sesi贸n (no al pago final directamente, pero 煤til para webhooks) | |
# session_params['metadata'] = {'order_id': 'ORD12345', 'user_id': 'user_abc'} | |
session = stripe.checkout.Session.create(**session_params) | |
print(f"Checkout Session creada exitosamente. ID: {session.id}") | |
print(f"URL de redirecci贸n: {session.url}") | |
return session.url | |
except stripe.error.StripeError as e: | |
print(f"Error de Stripe al crear la Checkout Session: {e}") | |
return None | |
except Exception as e: | |
print(f"Ocurri贸 un error inesperado al crear la Checkout Session: {e}") | |
return None |