"""YYB 下单和付款失败响应的统一归类。""" from __future__ import annotations def describe_payment_failure(provider: str, phase: str, response: object) -> str: """根据已保存的响应内容返回不会诱导连续重试的失败说明。""" text = str(response) is_qq = provider.lower() in {"qq", "qc"} if "1099-1007-0" in text or "ret=1099" in text: if is_qq: return ( "QQ 支付请求被风控/限流暂时拦截(1099-1007-0),未生成微信付款码;" "请停止连续重试,等待 30-60 分钟后再使用新订单尝试。" ) return "支付请求被暂时拦截(1099-1007-0),未生成微信付款码;请稍后使用新订单重试。" if "10007" in text: if is_qq: return ( "QQ 商城下单被支付侧暂时拒绝(10007 系统繁忙),未创建可付款订单;" "请停止连续重试,等待 30-60 分钟后再尝试。" ) return "商城下单被暂时拒绝(10007 系统繁忙),未创建可付款订单;请稍后重试。" if "10014" in text or "gamerole err" in text: return "角色或区服校验失败(10014),未创建可付款订单;请重新选择角色和区服。" if phase == "order": return "商城订单创建失败,未创建可付款订单;请查看任务日志中的业务码。" return "微信付款码生成失败;请查看任务日志中的业务码。"