- 新增 PaymentCountdown、ProductImage 组件 - 完善 checkout/orders/orderDetail 订单支付链路与地址、商品、设计数据 - request 接口地址改为构建期注入并保留真实网络错误,默认兜底线上地址 - 同步重新构建 dist 产物
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import Taro from '@tarojs/taro'
|
|
|
|
/** 当前登录用户信息在 Storage 中的 key */
|
|
export const USER_KEY = 'smart_user_info'
|
|
/** 当前激活 openid 在 Storage 中的 key */
|
|
export const ACTIVE_USER_KEY = 'smart_active_openid'
|
|
|
|
/** 判断 openid 是否为历史版仅前端 mock 残留(形如 mock_xxx)。
|
|
* 本地后端 WX_MOCK_LOGIN=1 返回 mock-xxx,属于可校验的联调用户,不能清除其 token。
|
|
*/
|
|
export function isMockOpenid(openid?: string | null): boolean {
|
|
return !!openid && openid.startsWith('mock_')
|
|
}
|
|
|
|
/** 取当前用户 openid;没有登录态时回退 _guest_ 并缓存 */
|
|
function getActiveOpenid(): string {
|
|
let user: any = null
|
|
try {
|
|
user = Taro.getStorageSync(USER_KEY)
|
|
} catch {
|
|
user = null
|
|
}
|
|
const openid = user?.openid || Taro.getStorageSync(ACTIVE_USER_KEY) || '_guest_'
|
|
Taro.setStorageSync(ACTIVE_USER_KEY, openid)
|
|
return openid
|
|
}
|
|
|
|
/** 按当前用户生成作用域 storage key */
|
|
export function key(scope: string): string {
|
|
const prefix = getActiveOpenid()
|
|
return `${scope}_${prefix}`
|
|
}
|
|
|
|
/** 按指定 openid 生成作用域 storage key */
|
|
export function keyFor(scope: string, openid: string): string {
|
|
return `${scope}_${openid}`
|
|
}
|