Explorar o código

Handle case where data["receipt"]["in_app"] is empty

Son NK %!s(int64=5) %!d(string=hai) anos
pai
achega
e6c37cad0b
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  1. 4 0
      app/api/views/apple.py

+ 4 - 0
app/api/views/apple.py

@@ -490,6 +490,10 @@ def verify_receipt(receipt_data, user, password) -> Optional[AppleSubscription]:
     #     "is_in_intro_offer_period": "false",
     # }
     transactions = data["receipt"]["in_app"]
+    if not transactions:
+        LOG.warning("Empty transactions in data %s", data)
+        return None
+
     latest_transaction = max(transactions, key=lambda t: int(t["expires_date_ms"]))
     original_transaction_id = latest_transaction["original_transaction_id"]
     expires_date = arrow.get(int(latest_transaction["expires_date_ms"]) / 1000)