's'
This commit is contained in:
80
README_KNOWLEDGE.md
Normal file
80
README_KNOWLEDGE.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# 知识付费平台说明
|
||||
|
||||
## 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 用户
|
||||
|
||||
```sql
|
||||
INSERT INTO wxgzh_vip_users (user_id, expire_at)
|
||||
VALUES ('用户UUID', '2026-12-31 23:59:59+00');
|
||||
```
|
||||
|
||||
## 视频 URL 格式
|
||||
|
||||
- **CDN**:`https://your-cdn.com/video.mp4`
|
||||
- **本地**:`/videos/lesson1.mp4`(放在 `public/videos/` 下)
|
||||
|
||||
## 支付接入
|
||||
|
||||
已接入 payjsapi 后端,支持 **PC / 手机浏览器 / 微信内** 三种场景,**zpay / xorpay** 两种渠道。
|
||||
|
||||
### 场景与渠道
|
||||
|
||||
| 场景 | 渠道 | 行为 |
|
||||
|------|------|------|
|
||||
| PC 浏览器 | zpay | 展示微信扫码二维码,轮询支付状态 |
|
||||
| 手机浏览器 | zpay | 新窗口打开支付页 |
|
||||
| 微信内 | xorpay(默认) | 当前页表单提交,收银台支付 |
|
||||
|
||||
### 配置
|
||||
|
||||
- **wxH5**:在 `.env` 中设置 `VITE_PAYMENT_API_URL`(payjsapi 地址,默认 `http://127.0.0.1:8700`)
|
||||
- **payjsapi**:需为 wxH5 配置 `SUPABASE_URL`、`SUPABASE_SERVICE_KEY`,支付成功后同步 Supabase `wxgzh_vip_users`
|
||||
|
||||
### 支付流程
|
||||
|
||||
1. 用户登录后点击「开通 VIP」→ 选择套餐 → 发起支付
|
||||
2. 返回地址 `/paid`,轮询订单状态,成功后刷新 VIP 状态
|
||||
3. payjsapi 异步通知写入 PocketBase + Supabase
|
||||
Reference in New Issue
Block a user