From ff501c13b5c788802131794bde509897034b3391 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 28 Aug 2026 17:09:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(purchase):=20user=5Forg=5Fid=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=B4=A9=E6=BA=83=E2=80=94=E2=80=94DictObject?= =?UTF-8?q?=E7=9A=84hasattr=E6=81=92True=E5=AF=BC=E8=87=B4await=20None()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - dspy侧显式取get_userorgid()传入(与purchase_confirm同款) - core侧hasattr判断改callable检查,兜底_get_current_org_id --- product_management/core.py | 7 ++++--- wwwroot/storefront/api/purchase_realtime.dspy | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/product_management/core.py b/product_management/core.py index 2bd6778..4da0e6b 100644 --- a/product_management/core.py +++ b/product_management/core.py @@ -1464,9 +1464,10 @@ class ProductManager: if not user_id: user_id = await env.get_user() if not user_org_id: - user_org_id = await env.get_userorgid() if hasattr(env, 'get_userorgid') \ - else self._get_current_org_id() - user_org_id = user_org_id or '0' + fn = getattr(env, 'get_userorgid', None) + if callable(fn): + user_org_id = await fn() + user_org_id = user_org_id or self._get_current_org_id() or '0' quantity = int(quantity or 1) storage_gb = float(storage_gb or 0) diff --git a/wwwroot/storefront/api/purchase_realtime.dspy b/wwwroot/storefront/api/purchase_realtime.dspy index 61b7727..b813612 100644 --- a/wwwroot/storefront/api/purchase_realtime.dspy +++ b/wwwroot/storefront/api/purchase_realtime.dspy @@ -13,9 +13,11 @@ try: raise Exception('缺少产品ID') env = ServerEnv() + user_org_id = (await get_userorgid()) or '0' r = await env.purchase_realtime( product_id=product_id, user_id=userid, + user_org_id=user_org_id, charge_mode=params_kw.get('charge_mode') or None, quantity=int(params_kw.get('quantity', 1) or 1), storage_gb=float(params_kw.get('storage_gb', 0) or 0),