import { goLogin } from './auth-nav'; import { isLoggedIn } from './api'; import { fetchClientConfig, fetchUserProfile, needsWechatAuthForPay } from './pay-wechat'; export async function ensurePayReady(returnPath: string): Promise { if (!isLoggedIn()) { goLogin(returnPath); return false; } try { const [config, profile] = await Promise.all([fetchClientConfig(), fetchUserProfile()]); if (!needsWechatAuthForPay(config, profile)) { return true; } goLogin(returnPath, { needWechat: '1' }); return false; } catch (e) { const msg = e instanceof Error ? e.message : ''; if (/登录已过期|重新登录|401/.test(msg) || !isLoggedIn()) { goLogin(returnPath); } return false; } }