|
@@ -336,8 +336,18 @@ class AccountService:
|
|
|
if not result.is_success():
|
|
if not result.is_success():
|
|
|
sub_code = getattr(result, 'sub_code', '') or ''
|
|
sub_code = getattr(result, 'sub_code', '') or ''
|
|
|
sub_msg = getattr(result, 'sub_msg', '') or ''
|
|
sub_msg = getattr(result, 'sub_msg', '') or ''
|
|
|
- hint = _TRANSFER_ERROR_HINTS.get(sub_code, sub_msg or result.msg or "转账失败")
|
|
|
|
|
- log.error(f"支付宝接口调用失败: {result.code} - {result.msg} (sub_code={sub_code})")
|
|
|
|
|
|
|
+
|
|
|
|
|
+ # 优先用 sub_code 匹配
|
|
|
|
|
+ hint = _TRANSFER_ERROR_HINTS.get(sub_code)
|
|
|
|
|
+ # sub_code 无匹配时,尝试从 sub_msg 中提取错误码(支付宝部分接口sub_code返回unknown-sub-code)
|
|
|
|
|
+ if not hint:
|
|
|
|
|
+ for code_key, code_hint in _TRANSFER_ERROR_HINTS.items():
|
|
|
|
|
+ if code_key in sub_msg:
|
|
|
|
|
+ hint = code_hint
|
|
|
|
|
+ break
|
|
|
|
|
+ hint = hint or sub_msg or result.msg or "转账失败"
|
|
|
|
|
+
|
|
|
|
|
+ log.error(f"支付宝接口调用失败: {result.code} - {result.msg} (sub_code={sub_code}, sub_msg={sub_msg})")
|
|
|
raise CustomException(msg=f"转账失败: {hint}")
|
|
raise CustomException(msg=f"转账失败: {hint}")
|
|
|
|
|
|
|
|
transfer_crud = TransferCRUD(auth)
|
|
transfer_crud = TransferCRUD(auth)
|