From 0a588576bf92ee59450cf0d7c8807fab04acf99e Mon Sep 17 00:00:00 2001 From: stefanfeng Date: Wed, 21 Oct 2026 11:53:22 +0800 Subject: [PATCH] fix: make virtual payment callback openid optional --- digital-avatar-app/backend/routers/tokens.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/digital-avatar-app/backend/routers/tokens.py b/digital-avatar-app/backend/routers/tokens.py index a4bc8aa..3a030b6 100644 --- a/digital-avatar-app/backend/routers/tokens.py +++ b/digital-avatar-app/backend/routers/tokens.py @@ -1087,12 +1087,12 @@ async def huihui_virtual_payment_notify(request: Request, db: Session = Depends( callback_env = int(payload.get("env")) except (TypeError, ValueError, WechatVirtualPaymentError): raise HTTPException(status_code=422, detail="invalid virtual payment details") + callback_open_id = str(payload.get("openId") or "").strip() if ( isinstance(payload.get("amountCents"), bool) or isinstance(payload.get("env"), bool) or not user - or not user.wechat_mp_openid - or str(payload.get("openId") or "") != user.wechat_mp_openid + or (callback_open_id and callback_open_id != user.wechat_mp_openid) or not expected_product_id or str(payload.get("productId") or "") != expected_product_id or amount_cents != order.price_cents