summaryrefslogtreecommitdiff
path: root/Biz/PodcastItLater/Billing.py
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/PodcastItLater/Billing.py')
-rw-r--r--Biz/PodcastItLater/Billing.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/Biz/PodcastItLater/Billing.py b/Biz/PodcastItLater/Billing.py
index a58c1fa..46e67ff 100644
--- a/Biz/PodcastItLater/Billing.py
+++ b/Biz/PodcastItLater/Billing.py
@@ -284,13 +284,25 @@ def handle_webhook_event(payload: bytes, sig_header: str) -> dict[str, str]:
def _handle_checkout_completed(session: dict[str, typing.Any]) -> None:
"""Handle checkout.session.completed event."""
- user_id = int(session.get("client_reference_id", 0))
+ client_ref = session.get("client_reference_id") or session.get(
+ "metadata",
+ {},
+ ).get("user_id")
customer_id = session.get("customer")
- if not user_id or not customer_id:
+ if not client_ref or not customer_id:
logger.warning(
"Missing user_id or customer_id in checkout session: %s",
- session["id"],
+ session.get("id", "unknown"),
+ )
+ return
+
+ try:
+ user_id = int(client_ref)
+ except (ValueError, TypeError):
+ logger.warning(
+ "Invalid user_id in checkout session: %s",
+ client_ref,
)
return