diff --git a/backend/python/app/api/im_bot_user.py b/backend/python/app/api/im_bot_user.py index d0e86b3..b51826d 100644 --- a/backend/python/app/api/im_bot_user.py +++ b/backend/python/app/api/im_bot_user.py @@ -249,9 +249,24 @@ async def wechat_qrcode(user: User = Depends(get_current_user)): if not resp.ok: return {"success": False, "error": f"获取二维码失败 HTTP {resp.status_code}"} j = resp.json() if resp.content else {} + qr_url = j.get("qrcode_img_content") or "" + qr_img = None + try: + import io as _io + import qrcode as _qrcode + _buf = _io.BytesIO() + _q = _qrcode.QRCode(box_size=10, border=2) + _q.add_data(qr_url) + _q.make(fit=True) + _img = _q.make_image(fill_color="black", back_color="white") + _img.save(_buf, format="PNG") + qr_img = "data:image/png;base64," + base64.b64encode(_buf.getvalue()).decode() + except Exception: + qr_img = None return {"success": True, "data": { "qrcode": j.get("qrcode"), - "qrcode_img_content": j.get("qrcode_img_content"), + "qrcode_img_content": qr_url, + "qrcode_img": qr_img, }} except Exception as e: raise HTTPException(status_code=500, detail=str(e)) diff --git a/frontend/src/pages/front/WechatBot.tsx b/frontend/src/pages/front/WechatBot.tsx index e7b0d08..6df4391 100644 --- a/frontend/src/pages/front/WechatBot.tsx +++ b/frontend/src/pages/front/WechatBot.tsx @@ -146,11 +146,11 @@ const WechatBot: React.FC = () => { ) : (