Files
gitlab-instance-0a899031_wxh5/README_KNOWLEDGE.md
2026-03-11 10:26:40 -05:00

2.7 KiB
Raw Permalink Blame History

知识付费平台说明

Markdown 内容结构

内容统一放在 public/markdown/ 目录,支持文件引用字符串两种方式:

public/markdown/
├── README.md          # 说明
├── course/            # 课程配套文章
│   ├── 1/1.md, 2.md, 3.md
│   └── 2/1.md, 2.md
└── ebook/             # 电子书章节
    ├── 1/1.md, 2.md, 3.md
    └── 2/1.md, 2.md

引用格式(数据库 article_markdown / content 字段):

  • @file:course/1/1 → 加载 course/1/1.md
  • @file:ebook/2/3 → 加载 ebook/2/3.md
  • 直接写 Markdown 字符串 → 内联渲染

配置src/markdown/config.js 中维护 MARKDOWN 映射,新增章节时在此添加。

功能概览

  • 首页(游客模式):无需登录即可浏览电子书专栏和课程专栏
  • 电子书:支持 Markdown 内容免费章节可读VIP 章节需开通
  • 课程:视频支持本地文件或 CDN 链接,免费试看 + VIP 全看
  • VIP:月卡/年卡/终身卡,开通后可解锁全部内容
  • 暗黑模式:右上角灯泡切换

Supabase 数据表

在 Supabase SQL Editor 中执行 supabase/migrations/001_knowledge_tables.sql 创建表结构。

表说明

表名 说明
wxgzh_ebooks 电子书专栏
wxgzh_ebook_chapters 电子书章节content 存 Markdown
wxgzh_courses 课程专栏
wxgzh_course_chapters 课程章节video_url 支持 /path 或 https://
wxgzh_vip_users VIP 用户user_id, expire_at

添加 VIP 用户

INSERT INTO wxgzh_vip_users (user_id, expire_at)
VALUES ('用户UUID', '2026-12-31 23:59:59+00');

视频 URL 格式

  • CDNhttps://your-cdn.com/video.mp4
  • 本地/videos/lesson1.mp4(放在 public/videos/ 下)

支付接入

已接入 payjsapi 后端,支持 PC / 手机浏览器 / 微信内 三种场景,zpay / xorpay 两种渠道。

场景与渠道

场景 渠道 行为
PC 浏览器 zpay 展示微信扫码二维码,轮询支付状态
手机浏览器 zpay 新窗口打开支付页
微信内 xorpay默认 当前页表单提交,收银台支付

配置

  • wxH5:在 .env 中设置 VITE_PAYMENT_API_URLpayjsapi 地址,默认 http://127.0.0.1:8700
  • payjsapi:需为 wxH5 配置 SUPABASE_URLSUPABASE_SERVICE_KEY,支付成功后同步 Supabase wxgzh_vip_users

支付流程

  1. 用户登录后点击「开通 VIP」→ 选择套餐 → 发起支付
  2. 返回地址 /paid,轮询订单状态,成功后刷新 VIP 状态
  3. payjsapi 异步通知写入 PocketBase + Supabase