TL),等待 confirm 端点消费。
        """
        return f"qrcode:scan:{ticket}"

    @staticmethod
    def _confirm_key(ticket: str) -> str:
        """获取确认结果 Key。

        存放 confirm 后的 token(60s TTL),供前端 poll 拿到后清空。
        """
        return f"qrcode:confirm:{ticket}"

    # ------------------------------------------------------------------
    # create: 创建扫码登录票据
    # ------------------------------------------------------------------
    async def create_ticket(self) -> Dict[str, Any]:
        """创建扫码登录票据,返回 ticket + 企微 OAuth2 授权 URL。

        流程:
          1. 生成 UUID ticket
          2. 写 Redis qrcode:ticket:{ticket} (TTL 120s)
          3. 拼接企微 OAuth2 URL(state 参数传 ticket)
          4. 返回 ticket / url / expires_at

        Returns:
            Dict: 包含 ticket / qrcode_url / expires_in / expires_at
        """
        # 生成 ticket: 32 字符 URL 安全随机串
        ticket = secrets.token_urlsafe(24)

        now = datetime.now()
        expires_at = now + timedelta(seconds=TICKET_TTL_SECONDS)

        # 写 Redis 票据状态(只存时间戳,标明此 ticket 已创建)
        ticket_payload = {
            "created_at": now.isoformat(),
            "expires_at": expires_at.isoformat(),
        }
        await self.redis.setex(
            self._ticket_key(ticket),
            TICKET_TTL_SECONDS,
            json.dumps(ticket_payload, ensure_ascii=False),
        )

        # 拼接企微 OAuth2 授权 URL
        # scope=snsapi_base: 静默授权,用户无感知(企微内部应用必须)
        # state={ticket}: OAuth 回调时把 ticket 回传给我们的 scan 端点
        qrcode_url = self._build_oauth_url(ticket)

        logger.info(
            f"扫码登录票据创建: ticket={ticket[:8]}..., expires_at={expires_at.isoformat()}"
        )

        return {
            "ticket": ticket,
            "qrcode_url": qrcode_url,
            "qrcode_png_base64": self._render_qrcode_png(qrcode_url),
            "expires_in": TICKET_TTL_SECONDS,
            "expires_at": expires_at,
        }

    @staticmethod
    def _render_qrcode_png(url: str) -> str:
        """把 url 编成 PNG 并返回 base64 字符串,供前端 <img :src="data:image/png;base64,..."> 直接渲染。

        依赖: requirements.txt 已有 qrcode[pil]==7.4.2 (2026-06-15 加的,原本为 OTP 绑定)。
        """
        qr = qrcode.QRCode(version=1, box_size=10, border=2)
        qr.add_data(url)
        qr.make(fit=True)
        img = qr.make_image(fill_color="black", back_color="white")
        buf = BytesIO()
        img.save(buf, format="PNG")
        return base64.b64encode(buf.getvalue()).decode("ascii")

    def _build_oauth_url(self, ticket: str) -> str:
        """拼接企微 OAuth2 授权 URL(供前端生成二维码)。

        URL 格式:
   