diff options
Diffstat (limited to 'Biz/PodcastItLater/Billing.py')
| -rw-r--r-- | Biz/PodcastItLater/Billing.py | 18 |
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 |
