万趣微信小程序
这是唯一的用户端前台,基于 Taro + React + TypeScript,覆盖探索、搜索、线路详情、收藏、最近浏览、微信手机号一键登录、H5 登录态同步、我的需求、退出登录和原生企微“联系我”页。
小程序已声明企微官方插件 wx104a1a20c3f81ec2(版本 1.4.3)。pages/contact/index 内置企业微信后台创建的联系我 config_id,直接渲染 plugin://contactPlugin/cell;H5 中的“企微联系”入口只负责跳转到该原生页。后端不参与联系我插件的配置、同步或回调。
本地开发
npm run dev:miniapp
用微信开发者工具打开 apps/miniprogram,并将 project.config.json 中的 appid 替换为真实小程序 AppID。API 本地内存模式可用:
MINIAPP_MEMORY_DB=1 npm run dev:api:memory
生产构建
在根目录环境中设置:
TARO_APP_API_BASE_URL="https://bizwanderq.nianxx.com/api"
TARO_APP_H5_URL="https://wanderq.nianxx.com"
然后执行:
npm run build:miniapp
小程序内的 H5 登录通过 pages/login/index 原生手机号授权页完成;授权后由首页生成一次性 H5 票据,H5 兑换为 HttpOnly Cookie。直接打开 H5 且未携带票据时保持游客浏览。
生产 API 需要配置 WECHAT_APP_ID、WECHAT_APP_SECRET、DATABASE_URL、JWT_SECRET 和允许携带 H5 登录 Cookie 的 CORS_ORIGINS(例如 https://wanderq.nianxx.com),并将 API 域名与 OSS/CDN 域名加入微信小程序的 request、downloadFile 合法域名。联系我插件的 config_id 已随小程序代码发布,不需要后端企微密钥。图片统一使用 API 返回的 OSS WebP 公共 URL,不打包本地图片素材。
数据库首次部署执行 npm run db:migrate,初始化内容执行 npm run db:seed。