fix(weixin): 二维码改用 qrcode 原始标识串生成——qrUrl(liteapp页面)编码不能被微信识别
把 qrUrl(liteapp HTML页面URL)编码成二维码,微信扫它当普通链接打开→页面不认→'过期'。 改用 qrcode 原始标识串生成二维码(get_qrcode_status 轮询的 key, 微信扫码后解析), 并保留 qrUrl 作为'在微信/浏览器打开扫码页'的备用链接。build/部署。
This commit is contained in:
1 parent
a9dfae4d5f
commit
b6b258498c
1 file changed
+16
-3
@@ -41,6 +41,7 @@ export function WeixinLogin({
|
||||
}): React.ReactNode {
|
||||
const log = useAuditStore((s) => s.log);
|
||||
const [status, setStatus] = useState<string>("idle");
|
||||
const [qrCode, setQrCode] = useState<string>("");
|
||||
const [qrUrl, setQrUrl] = useState<string>("");
|
||||
const [botId, setBotId] = useState<string>("");
|
||||
const [busy, setBusy] = useState<string | null>(null);
|
||||
@@ -86,10 +87,12 @@ export function WeixinLogin({
|
||||
const start = () => {
|
||||
setBusy("__qr__");
|
||||
setNotice(null);
|
||||
setQrCode("");
|
||||
setQrUrl("");
|
||||
adminWeixinLoginQR(platform, accountId)
|
||||
.then((r) => {
|
||||
log("channel.weixin.login.qr", "ok");
|
||||
setQrCode(r.qrCode ?? "");
|
||||
setQrUrl(r.qrUrl ?? "");
|
||||
if (r.status === "confirmed") {
|
||||
setStatus("confirmed");
|
||||
@@ -117,7 +120,7 @@ export function WeixinLogin({
|
||||
.finally(() => setBusy(null));
|
||||
};
|
||||
|
||||
const showQR = status === "waiting" || qrUrl !== "";
|
||||
const showQR = status === "waiting" || qrCode !== "";
|
||||
|
||||
return (
|
||||
<Surface gap="sm" className="space-y-3">
|
||||
@@ -144,11 +147,21 @@ export function WeixinLogin({
|
||||
|
||||
{showQR ? (
|
||||
<div className="space-y-2">
|
||||
{qrUrl ? (
|
||||
<QrImage value={qrUrl} />
|
||||
{qrCode ? (
|
||||
<QrImage value={qrCode} />
|
||||
) : (
|
||||
<Notice tone="warn">二维码暂不可用,请点击「刷新二维码」重试。</Notice>
|
||||
)}
|
||||
{qrUrl ? (
|
||||
<a
|
||||
href={qrUrl}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="text-xs text-[var(--mu-accent-hi)] underline"
|
||||
>
|
||||
若上方码不识别,点此在微信/浏览器打开扫码页
|
||||
</a>
|
||||
) : null}
|
||||
<p className="text-xs text-[var(--mu-text-lo)]">请用微信扫描上方二维码,确认后自动连接(最多等待约 8 分钟)。</p>
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
Reference in new issue
Block a user