Spaces:
Running
Running
File size: 2,855 Bytes
d90d6a6 12cb4be 3e64a10 d90d6a6 d159d12 d90d6a6 d159d12 d90d6a6 51214b8 2690756 4a900cc 5cfc6de |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
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 |