瀏覽代碼

fix(transfer): 转账成功或失败都写入库

gatsby 1 周之前
父節點
當前提交
c7dcc5795c
共有 1 個文件被更改,包括 17 次插入14 次删除
  1. 17 14
      backend/app/plugin/module_payment/account/service.py

+ 17 - 14
backend/app/plugin/module_payment/account/service.py

@@ -332,10 +332,24 @@ class AccountService:
 
         result = AlipayCommerceEcTransAccountTransferResponse()
         result.parse_response_content(response)
+        sub_code = getattr(result, 'sub_code', '') or ''
+        sub_msg = getattr(result, 'sub_msg', '') or ''
+        # 无论是否成功都写入转账记录,记录接口调用结果和错误信息,方便后续查询和排查
+        transfer_crud = TransferCRUD(auth)
+        transfer_data = {
+            "enterprise_id": model.enterprise_id,
+            "out_biz_no": model.out_biz_no,
+            "account_book_id": model.account_book_id,
+            "amount": model.amount,
+            "order_title": model.order_title,
+            "payee_info": data.payee_info.model_dump() if data.payee_info else None,
+            "status": result.status,
+            "order_no": result.order_no,
+            "fund_order_id": result.fund_order_id,
+            "remark":f"{result.code} - {result.msg} (sub_code={sub_code}, sub_msg={sub_msg})"
+        }
 
         if not result.is_success():
-            sub_code = getattr(result, 'sub_code', '') or ''
-            sub_msg = getattr(result, 'sub_msg', '') or ''
 
             # 优先用 sub_code 匹配
             hint = _TRANSFER_ERROR_HINTS.get(sub_code)
@@ -350,18 +364,7 @@ class AccountService:
             log.error(f"支付宝接口调用失败: {result.code} - {result.msg} (sub_code={sub_code}, sub_msg={sub_msg})")
             raise CustomException(msg=f"转账失败: {hint}")
 
-        transfer_crud = TransferCRUD(auth)
-        transfer_data = {
-            "enterprise_id": model.enterprise_id,
-            "out_biz_no": model.out_biz_no,
-            "account_book_id": model.account_book_id,
-            "amount": model.amount,
-            "order_title": model.order_title,
-            "payee_info": data.payee_info.model_dump() if data.payee_info else None,
-            "status": result.status,
-            "order_no": result.order_no,
-            "fund_order_id": result.fund_order_id,
-        }
+
 
         await transfer_crud.create(transfer_data)