"""微信支付相关回调(一期:免确认收款授权结果通知 stub)。

⚠️ 一期不处理回调内容、不验签:授权状态以主动查询(query_transfer_authorization)为准。
本端点仅向微信回 200 避免重试风暴,**绝不依据回调内容改账**。二期接入时必须先补
V3 平台证书/公钥验签(Wechatpay-Signature) + APIv3 密钥 AEAD 解密,验签通过后方可信任并处理。

授权回调地址通过 settings.WXPAY_AUTH_NOTIFY_URL 配置,需指向本端点的公网地址。
"""
from __future__ import annotations

import logging

from fastapi import APIRouter, Request

logger = logging.getLogger("shagua.wxpay")

router = APIRouter(prefix="/api/v1/wxpay", tags=["wxpay"])


@router.post("/transfer-auth-notify", summary="免确认收款授权结果通知(一期 stub:仅应答,不处理)")
async def transfer_auth_notify(request: Request) -> dict:
    # 一期:不验签、不解密、不改账。仅记录 + 应答成功;真实授权状态靠 /transfer-auth/status 查询兜底。
    try:
        body = await request.json()
        logger.info(
            "transfer-auth notify id=%s type=%s", body.get("id"), body.get("event_type")
        )
    except Exception:  # noqa: BLE001 — body 解析失败也照常应答 200,避免微信重试
        logger.info("transfer-auth notify (unparseable body)")
    return {"code": "SUCCESS", "message": "OK"}
