添加测试日志

This commit is contained in:
db_huang 2026-10-31 17:49:15 +08:00
parent 2b01e0adec
commit b552ac56b0
2 changed files with 27 additions and 0 deletions

View File

@ -7,12 +7,16 @@ mode do not require credentials or network access.
from decimal import Decimal
import hashlib
import json
import logging
from pathlib import Path
import re
from .config import settings
logger = logging.getLogger(__name__)
class AlipayTransferError(RuntimeError):
def __init__(self, message: str, code: str = "", ambiguous: bool = False):
super().__init__(message)
@ -49,6 +53,11 @@ def validate_configuration() -> None:
raise AlipayTransferError("应用公钥证书与应用私钥不匹配")
else:
_sdk_key(_read_key(settings.alipay_public_key_path, "支付宝公钥"), private=False)
logger.info(
"Alipay provider configuration validated: scene=%s certificate_mode=%s transfer_scene_report_schema=佣金报酬说明",
settings.alipay_transfer_scene_name,
_certificate_mode_enabled(),
)
def _certificate_mode_enabled() -> bool:
@ -278,6 +287,18 @@ def transfer(*, out_biz_no: str, amount_fen: int, account: str, payee_name: str,
payee.identity_type = "ALIPAY_LOGON_ID"
payee.name = payee_name
model.payee_info = payee
# Keep a deploy-time diagnostic in the server log without exposing the
# recipient account, name, private key, or certificate data. This makes
# it possible to distinguish an old server build from an Alipay rejection.
logger.info(
"Alipay transfer request prepared: scene=%s info_type=%s info_content=%s amount=%s biz_scene=%s product_code=%s",
model.transfer_scene_name,
reward_description.info_type,
reward_description.info_content,
model.trans_amount,
model.biz_scene,
model.product_code,
)
try:
request = AlipayFundTransUniTransferRequest(biz_model=model)
if settings.alipay_notify_url:
@ -290,7 +311,13 @@ def transfer(*, out_biz_no: str, amount_fen: int, account: str, payee_name: str,
raise
provider_error = _provider_error_from_exception(exc)
if provider_error:
logger.error(
"Alipay transfer rejected: code=%s message=%s",
provider_error.code,
provider_error,
)
raise provider_error from exc
logger.exception("Alipay transfer request failed without a structured provider response")
raise AlipayTransferError(f"支付宝转账请求失败:{exc}", ambiguous=True) from exc
return {
"out_biz_no": response.out_biz_no or out_biz_no,