|
|
import stripe |
|
|
import globales |
|
|
import herramientas |
|
|
import ga4Analiticas |
|
|
from fastapi import Request, Header |
|
|
import time |
|
|
|
|
|
async def procesa_evento(request: Request, stripe_signature: str = Header(None)): |
|
|
|
|
|
print("Estoy en procesa evento....") |
|
|
|
|
|
|
|
|
webhook_secret = globales.webhook |
|
|
data = await request.body() |
|
|
|
|
|
try: |
|
|
event = stripe.Webhook.construct_event( |
|
|
payload=data, |
|
|
sig_header=stripe_signature, |
|
|
secret=webhook_secret |
|
|
) |
|
|
|
|
|
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()) |
|
|
gaCliente = event_data['metadata'].get('gaCliente', None) |
|
|
print("Gaclient es: ", gaCliente) |
|
|
|
|
|
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'])) |
|
|
|
|
|
|
|
|
|
|
|
if len(event_data['payment_method_options']) > 0: |
|
|
if len(event_data['payment_method_options']["card"]) > 1: |
|
|
cus_id = event_data['customer'] |
|
|
print("Customer directo:", cus_id) |
|
|
imagenes = event_data['metadata']['imagenes'] |
|
|
print("Imágenes:", imagenes) |
|
|
firebase_user = event_data['metadata']['firebase_user'] |
|
|
herramientas.registrar_evento(cus_id, firebase_user, int(imagenes)) |
|
|
|
|
|
print("gacliente:", gaCliente) |
|
|
|
|
|
if(gaCliente): |
|
|
print("Sending to GA4...") |
|
|
ga4Analiticas.send_ga4_purchase_event(event_data) |
|
|
|
|
|
if event_type == 'checkout.session.async_payment_succeeded': |
|
|
print("Pago asíncrono completado.") |
|
|
print("Checkout Session completado.") |
|
|
|
|
|
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)) |
|
|
print("gacliente:", gaCliente) |
|
|
print("Sending to GA4...") |
|
|
ga4Analiticas.send_ga4_purchase_event(event_data) |
|
|
|
|
|
else: |
|
|
print(f'unhandled event: {event_type}') |
|
|
|
|
|
return {"status": "success"} |