Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fanyu/WealthProfile

Repository files navigation

WealthTest

财富潜力测试(小红书销售版)开源开发仓库。

当前状态

  • 已完成文档系统落地(docs/)。
  • 已完成测评主链路(验单 -> 会话 -> 作答 -> 报告)。
  • 已完成运营后台检索(订单/会话/报告)。
  • 已完成双档题量(快速版 8 题 / 标准版 24 题)与置信度输出。
  • 已完成"情境冲突型"题库与可晒标签(主标签+副标签+分享文案)。

本地运行

  1. 安装依赖:npm install
  2. 复制环境变量:cp .env.example .env.local
  3. 启动开发:npm run dev
  4. 页面入口:/, /assessment, /admin

Admin RBAC

  • 后台支持"账号密码登录 -> cookie 会话",也支持 token 直传(x-admin-tokenAuthorization: Bearer <token>)
  • 可配置环境变量:
    • ADMIN_LOGIN_USERNAME(默认 admin)
    • ADMIN_LOGIN_PASSWORD(为空时回退使用 ADMIN_TOKEN)
    • ADMIN_VIEWER_TOKEN
    • ADMIN_OPERATOR_TOKEN
    • ADMIN_ADMIN_TOKEN
    • ADMIN_TOKEN(兼容单 token,按 admin 角色处理)
  • 推荐本地设置:ADMIN_LOGIN_USERNAME=admin + ADMIN_LOGIN_PASSWORD=admin + ADMIN_TOKEN=admin

MySQL(可选)

  1. 创建数据库:wealth_test
  2. 执行脚本:db/schema.sql
  3. 设置 .env.local:
    • MYSQL_ENABLED=true
    • MYSQL_HOST/MYSQL_PORT/MYSQL_USER/MYSQL_PASSWORD/MYSQL_DATABASE

默认 MYSQL_ENABLED=false,将使用内存仓储用于本地快速开发。

已实现 API

  • POST /api/v1/xhs/order/validate
  • POST /api/v1/assessment/session/create
  • GET /api/v1/assessment/questions
  • POST /api/v1/assessment/submit
  • GET /api/v1/report/:reportId
  • POST /api/v1/share-card/generate
  • GET /api/v1/admin/dashboard
  • GET /api/v1/admin/orders
  • GET/POST /api/v1/admin/redeem-codes
  • GET /api/v1/admin/sessions
  • GET /api/v1/admin/reports
  • GET /api/v1/admin/reports/export
  • GET /api/v1/admin/trace/:id
  • GET /api/v1/admin/monitor
  • GET /api/v1/admin/audits
  • POST /api/v1/admin/xhs/diagnose
  • POST /api/v1/report/export
  • GET /api/v1/report/export/download
  • GET /api/v1/health
  • POST /api/v1/redeem-code/validate

发布前自检

  • 快速烟测:npm run smoke
  • 发布门禁自检:npm run release:check -- http://localhost:3000 ORDER-10001 admin
  • 小红书映射探测:./scripts/xhs_live_probe.sh http://localhost:3000 ORDER-10001 admin
  • 小红书样本回放:npm run xhs:replay
  • 单元测试基线:npm test

小红书 live 预留环境变量

  • XHS_MODE=live
  • XHS_APP_KEY=...
  • XHS_APP_SECRET=...
  • XHS_OPEN_BASE_URL=https://open.xiaohongshu.com
  • XHS_ORDER_VALIDATE_PATH=/your/path
  • XHS_TIMEOUT_MS=8000
  • XHS_RETRY_COUNT=1
  • XHS_SIGN_HEADER=x-sign
  • XHS_RESPONSE_SIGN_HEADER=x-sign
  • XHS_VERIFY_RESPONSE_SIGN=false

快速联调流程

  1. POST /api/v1/xhs/order/validate 获取 validationToken
  2. POST /api/v1/assessment/session/create(可传 tier=quick|standard)获取 sessionId
  3. GET /api/v1/assessment/questions?tier=quick|standard 获取题目
  4. POST /api/v1/assessment/submit(传 tier)获取 reportId
  5. 打开 /report/{reportId} 查看报告

无 API 发码流程(推荐当前店铺)

  1. 小红书虚拟商品自动发卡密(兑换码)
  2. 用户进入 /assessment,选择"兑换码"校验
  3. 前端调用 POST /api/v1/redeem-code/validate 获取 validationToken
  4. 前端调用 POST /api/v1/assessment/session/create 开测
  5. 后台 GET /api/v1/admin/redeem-codes 可追踪码状态/会话绑定

小红书样本回放(离线)

  • 样本目录:fixtures/xhs/*.json
  • 回放命令:npm run xhs:replay
  • 用途:在未接入 live 网关前,先验证字段映射与签名校验逻辑。

Smoke 测试

  • 启动服务后执行:./scripts/smoke.sh
  • 可传参:./scripts/smoke.sh http://localhost:3000 ORDER-10001

文档入口

  • docs/README.md

About

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /