Spaces:
Running
Running
File size: 3,078 Bytes
9365a43 5358f12 2d73b8f 9365a43 2d73b8f 9365a43 2902d8c 9365a43 2d73b8f 18b664c 2d73b8f 9365a43 1b1c3e0 2d73b8f 368095c 2d73b8f 027196c cf3230e 2d73b8f 58e9d96 2d73b8f 047ff2c 92dc722 047ff2c 9365a43 4dc3e52 92dc722 3f05953 a9bba9f 3f05953 abcca44 95c027a 2817194 c02ddff 2817194 2d73b8f 9365a43 2d73b8f 7b23511 ce612b0 |
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
import time
import stripe
from fastapi import FastAPI, Request, Header
import sulkuPypi
import globales
import herramientas
app = FastAPI()
string_key = globales.llave
# This is a terrible idea, only used for demo purposes!
app.state.stripe_customer_id = None
@app.get("/")
def start():
return {f"Status":"Deployed"}
@app.post("/webhook")
async def webhook_received(request: Request, stripe_signature: str = Header(None)):
webhook_secret = globales.webhook
data = await request.body()
print("Construyendo el evento:")
try:
event = stripe.Webhook.construct_event(
payload=data,
sig_header=stripe_signature,
secret=webhook_secret
)
# print("Evento construido...")
# print(event)
# print("Evento impreso")
except Exception as e:
print("Excepción es: ", e)
try:
event_data = event['data']['object']
except Exception as e:
print("Excepción-183 es: ", e)
event_type = event['type']
print("Voy a imprimir el event type:")
print(event_type)
print("Sucedido a las: ", herramientas.imprimeTime())
if event_type == 'checkout.session.completed':
print("Checkout Session completado.")
print("Status:")
print(event_data['status'])
print("Payment Method Options:")
print(event_data['payment_method_options'])
print("Cantidad de elementos:")
print(len(event_data['payment_method_options']))
#Si hay un elemento que es card abona inmediatamente.
#Si no, por ahora ignora.
if len(event_data['payment_method_options']) > 0: #Si es mayor que cero checa si existe card.
print("Ancho del contenido de card: ")
if len(event_data['payment_method_options']["card"]) > 1: #Si el contenido de card es mayor de uno, si existe y puedes finalmente procesar el pago.
cus_id = event_data['customer']
print("Customer directo:", cus_id)
imagenes = event_data['metadata']['imagenes']
print("Imágenes:")
print(imagenes)
herramientas.registrar_evento(cus_id, int(imagenes))
if event_type == 'checkout.session.async_payment_succeeded':
print("Pago asíncrono completado.")
print("Checkout Session completado.")
print("Status:")
print(event_data['status'])
print("Payment Method Options:")
print(event_data['payment_method_options'])
print("Cantidad de elementos:")
print(len(event_data['payment_method_options']))
cus_id = event_data['customer']
print("Customer directo:", cus_id)
imagenes = event_data['metadata']['imagenes']
print("Imágenes:")
print(imagenes)
herramientas.registrar_evento(cus_id, int(imagenes))
else:
print(f'unhandled event: {event_type}')
return {"status": "success"} |