From e699b110f813c878cb0c9fda86da70bdf4b0d781 Mon Sep 17 00:00:00 2001 From: wwwwwwwww <526125649@qq.com> Date: Fri, 12 Jun 2026 10:20:27 +0800 Subject: [PATCH] 1 --- video-gen-api/app/services/payment.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/video-gen-api/app/services/payment.py b/video-gen-api/app/services/payment.py index fc7ae2fb..19f6a96d 100644 --- a/video-gen-api/app/services/payment.py +++ b/video-gen-api/app/services/payment.py @@ -445,7 +445,8 @@ def _create_wechat_order(order: PaymentOrder, db_configs: dict[str, str]) -> str "payer_client_ip": "127.0.0.1", } ) - if code == 200: + result = result or {} + if code == 200 and result.get('code_url'): # 注意:微信返回的 code_url 可能需要进一步处理成二维码图片地址 return result.get('code_url') else: @@ -518,7 +519,8 @@ async def _query_wechat_order(db: AsyncSession, order: PaymentOrder, db_configs: try: code, result = client.query(out_trade_no=order.order_no) - if code == 200 and hasattr(result, 'get') and result.get('trade_state'): + result = result or {} + if code == 200 and result.get('trade_state'): logger.info( f"WeChat query succeeded: order_no={order.order_no}, " f"trade_state={result.get('trade_state')}" @@ -573,8 +575,9 @@ async def _refund_wechat_order( }, reason=refund_reason ) + result = result or {} - if code == 200 and hasattr(result, 'get') and result.get('status') == 'SUCCESS': + if code == 200 and result.get('status') == 'SUCCESS': logger.info(f"WeChat refund succeeded: order_no={order.order_no}") return {"success": True, "refund_id": result.get('refund_id')} else: @@ -584,7 +587,7 @@ async def _refund_wechat_order( ) return { "success": False, - "message": f"微信退款失败: code={code}, {result.get('code', '') if hasattr(result, 'get') else ''}" + "message": f"微信退款失败: code={code}, {result.get('code', '')}" } except Exception as e: logger.exception(f"WeChat refund exception: order_no={order.order_no}")