From c6e90507386bb4d376f2acab5b9d3d27d4b2bf5f Mon Sep 17 00:00:00 2001 From: eric Date: Tue, 31 Mar 2026 13:25:20 -0500 Subject: [PATCH] 's' --- app/HomeClient.tsx | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/app/HomeClient.tsx b/app/HomeClient.tsx index b621cb3..e6c225e 100644 --- a/app/HomeClient.tsx +++ b/app/HomeClient.tsx @@ -290,7 +290,8 @@ export default function HomeClient() { : ""; const hasVipFromRelation = relations?.has_vip_by_user_id === true || - relations?.has_vip_by_pb_user === true; + relations?.has_vip_by_pb_user === true || + relations?.has_vip_by_wechat_userid === true; if (/^user\d+$/.test(linkedAnonymousUserId)) { setStorage("userId", linkedAnonymousUserId); setStorage("memosAccount", linkedAnonymousUserId); @@ -299,7 +300,7 @@ export default function HomeClient() { // 关键修复:若 wechat_profile 已确认关联到 VIP 用户,立即回填关联 user_id 并进入 VIP 态 if (hasVipFromRelation) { const resolvedVipUserId = - linkedPbUserId || relationUserId || linkedAnonymousUserId; + linkedPbUserId || relationUserId || linkedAnonymousUserId || wechatUserId; if (resolvedVipUserId) { setStorage("userId", resolvedVipUserId); if (/^user\d+$/.test(resolvedVipUserId)) { @@ -746,6 +747,23 @@ export default function HomeClient() { (getStorage("wechatUserId") || "").trim() || (getStorage("userid") || "").trim(); let anonymousCandidate = getStoredAnonymousUserId(); + // 参数 userid 是真实微信用户标识时,应优先用它校验 VIP,避免被历史/新生成 userId 干扰 + if (wechatUserId) { + const wechatVip = await checkPaymentFromPB(wechatUserId); + if (wechatVip) { + setStorage("userId", wechatUserId); + savePaidType("vip"); + const name = + getStorage("wechatNick") || + getStorage("userEmail") || + getStorage("userName") || + wechatUserId; + saveUserName(name); + const mail = (getStorage("userEmail") || "").trim(); + setUserEmail(mail.includes("@") ? mail : null); + return; + } + } if (!anonymousCandidate && wechatUserId) { const recoveredFromWechat = await recoverAnonymousUserId({ wechatUserId,