lovart3/docs/lovart-重建接口联调清单.md
Your Name 7432cfc890
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
feat: wire lovart pricing checkout and stripe webhook sync
2026-02-12 12:43:27 +08:00

4.3 KiB
Raw Blame History

Lovart 重建接口联调清单

更新时间:2026-02-12

已接入(当前可用)

页面 数据来源 方式 状态
/lovart getSiteSettings DB 直连(RSC) 已接入
/lovart getNavLinks DB 直连(RSC) 已接入
/lovart getEnabledAiModelsWithProvider DB 直连(RSC) 已接入
/lovart getTutorialVideos DB 直连(RSC) 已接入
/lovart getPublicFeaturedImages DB 直连(RSC) 已接入
/lovart getPublicFeaturedRanking DB 直连(RSC) 已接入
/lovart/pricing 模型、教程、精选样例 DB 直连(RSC) 已接入
/lovart/news 教程流 + 精选流 + 榜单 DB 直连(RSC) 已接入
/lovart/blog 教程流 + 灵感墙 DB 直连(RSC) 已接入
/lovart/changelog 教程更新 + 精选更新时间线 DB 直连(RSC) 已接入
/lovart* 公开访问 proxy.ts 放行 中间件路由白名单 已接入
/api/public/lovart?view=home 首页聚合数据 Public API 已接入
/api/public/lovart?view=pricing 定价页聚合数据 Public API 已接入
/api/public/lovart?view=news 新闻页聚合数据 Public API 已接入
/api/public/lovart?view=blog 博客页聚合数据 Public API 已接入
/api/public/lovart?view=changelog 更新日志聚合数据 Public API 已接入
POST /api/billing/checkout Stripe Checkout 会话创建 登录用户触发支付 已接入
POST /api/billing/webhook/stripe Stripe 事件回调 更新用户套餐额度 已接入

新增查询与 API

  • 查询函数(lib/db/queries.ts)
    • getPublicFeaturedImages(limit)
    • getPublicFeaturedRanking(limit)
    • getPublicChangelogEvents(limit)
    • getTutorialVideos()(改为静态导入,减少运行时开销)
  • 支付配置(lib/billing/plans.ts)
    • 套餐定义、额度映射、Stripe Price ID 读取
  • Stripe 工具(lib/billing/stripe.ts)
    • Checkout Session 创建
    • Webhook 签名校验
  • 公开接口(app/api/public/lovart/route.ts)
    • GET /api/public/lovart?view=home|pricing|news|blog|changelog
    • 返回公共营销页所需聚合数据(含短缓存头)
  • 计费接口
    • POST /api/billing/checkout
    • POST /api/billing/webhook/stripe

页面层联动点

页面 联动项 说明
/lovart siteSettings.bannerEnabled/bannerText 顶部公告条同步后台配置
/lovart siteSettings.rankingEnabled 控制是否显示作者榜
/lovart siteSettings.tutorialEnabled 控制是否展示教程区块
/lovart siteSettings.toolbox1Name/toolbox2Name + navLinks.toolboxGroup 统计工具箱入口并展示在顶部指标条
/lovart/pricing 模型/教程/精选数量 套餐文案与样例数量实时同步
/lovart/news 视频更新时间 + 精选流 + 榜单 新闻头条和列表动态生成

暂未接入(后续)

项目 说明 后续动作
转化事件埋点 参考站有较重埋点(GTM/像素) 接入统一埋点层,避免散落脚本
支付与订阅管理页 已接入 Stripe Checkout 与 Webhook 增加用户中心“管理订阅/账单”入口
多语言内容 参考站多语言切换 增加 i18n 路由和文案资源
复杂交互动效 目前是首版时序动效 按参考页面做逐区块微交互调优
页面 AB 参数化 参考站含实验参数 结合后台配置做模块开关

风险与注意

  • 当前公开页直接走服务端查询,性能可控;高并发建议在查询层增加缓存。
  • 新增 Public API 仅输出营销页公共数据,不含私密用户字段。
  • 若后续改成纯客户端渲染,可直接消费 /api/public/lovart,减少页面层重复聚合逻辑。

Stripe 接入说明(当前版本)

  • 需要在环境变量中配置:
    • STRIPE_SECRET_KEY
    • STRIPE_WEBHOOK_SECRET
    • STRIPE_PRICE_ID_BASIC
    • STRIPE_PRICE_ID_PRO
    • STRIPE_PRICE_ID_ULTIMATE
  • Stripe Webhook 回调地址:
    • POST /api/billing/webhook/stripe
  • 当前事件处理:
    • checkout.session.completed
    • customer.subscription.updated
    • customer.subscription.deleted
  • 订阅权益映射:
    • 基于套餐写回 User.monthlyImageLimit。