实施美团式的支付流程,并增强相关功能

- 将支付流程统一至礼品支付页面,禁止从阅读页面进行支付,以优化用户体验。
- 更新了礼物支付详情页面,为发起人和朋友展示了不同的用户界面元素,包括为发起人提供的分享按钮和为朋友提供的支付按钮。
- 增强了后端逻辑,以确保在支付处理过程中正确将收益归因于发起人。
- 增加了每日章节更新,并改进了章节页面的加载状态,以提升用户交互体验。
- 更新了文档,以反映新的支付流程和相关变更。
This commit is contained in:
Alex-larget
2026-03-17 12:15:08 +08:00
parent 0d12ab1d07
commit 601044ec60
30 changed files with 822 additions and 238 deletions

View File

@@ -0,0 +1,28 @@
# 后端 - 2026-03-17
## 代付 PayNotify 权益归属修复
### 问题
代付支付回调中,`buyerUserID` 由 openID 解析得到,即**代付人**。权益激活全书、VIP、章节、余额充值和分佣均用 `buyerUserID`,导致权益错误给到代付人,而非发起人。
### 修复
引入 `beneficiaryUserID`(权益归属人):
- **代付订单**`beneficiaryUserID = order.UserID`(发起人)
- **普通订单**`beneficiaryUserID = buyerUserID`(付款人)
权益激活、分佣、取消未支付订单等逻辑统一改用 `beneficiaryUserID`
### 经验
- 代付场景:`order.user_id` = 发起人,`payer_user_id` = 代付人;权益与分佣必须按 `order.user_id` 处理
- PayNotify 中 openID 解析得到的是实际付款人,代付时需以 order 的 user_id 为权益归属
---
## gift-pay detail 返回 initiatorUserId
- 供小程序区分发起人/好友,展示不同 UI
- 字段:`initiatorUserId`(发起人 user_id

View File

@@ -8,3 +8,4 @@
| 2026-03-12 | persons token 字段与 DB 迁移CKBLead 用 token 兑换 ckb_api_key | [2026-03-12.md](./2026-03-12.md) |
| 2026-03-14 | 内容排名算法修正:排名分公式(阅读/新度/付款前 N 名),支持 hot_score 手动覆盖 | [2026-03-14.md](./2026-03-14.md) |
| 2026-03-16 | ParseAutoLinkContent data-label存客宝 create planType/sceneId/status | [2026-03-16.md](./2026-03-16.md) |
| 2026-03-17 | 代付 PayNotify beneficiaryUserID 权益归发起人gift-pay detail 返回 initiatorUserId | [2026-03-17.md](./2026-03-17.md) |

View File

@@ -0,0 +1,21 @@
# 团队 - 2026-03-17
## 代付美团式流程与权益归属约定
### 流程约定
1. **入口**:读页「找好友代付」→ 创建请求 → **跳转代付详情页**(不再弹窗)
2. **代付页**:发起人看到「分享给好友」,好友看到「帮他付款」
3. **后端**detail 返回 `initiatorUserId`,前端据此区分
### 权益与分佣约定
- 代付订单:`order.user_id` = 发起人,`payer_user_id` = 代付人
- 权益全书、VIP、章节、余额充值归属发起人
- 分佣按发起人的推荐关系计算
- PayNotify 中 openID 解析得到的是代付人,权益与分佣必须用 `order.user_id`
### 同时影响
- 小程序:代付详情页双态 UI、读页跳转
- 后端PayNotify beneficiaryUserID、detail initiatorUserId

View File

@@ -9,3 +9,4 @@
| 2026-03-12 | 密钥/token 设计:关联小程序 key、@ 人物 token不暴露真实密钥、服务端兑换 | [2026-03-12.md](./2026-03-12.md) |
| 2026-03-14 | 内容排名算法跨端复用:管理端内容排行与小程序精选推荐共用 computeArticleRankingSections | [2026-03-14.md](./2026-03-14.md) |
| 2026-03-16 | TipTap Mention 需 data-label否则显示 token | [2026-03-16.md](./2026-03-16.md) |
| 2026-03-17 | 代付美团式流程与权益归属约定:读页→代付页→分享;权益/分佣归发起人 | [2026-03-17.md](./2026-03-17.md) |

View File

@@ -0,0 +1,40 @@
# 小程序 - 2026-03-17
## 代付美团式流程改造
### 场景
用户希望代付流程类似美团:先进入代付页面,再分享给好友,而非在阅读页弹窗分享。
### 实现
1. **读页「找好友代付」**:创建请求后 `wx.navigateTo` 跳转 `/pages/gift-pay/detail?requestSn=xxx`,移除弹窗
2. **代付详情页双态**
- 发起人(`detail.initiatorUserId === 当前用户ID`):标题「找朋友代付」,主按钮「分享给好友」(`open-type="share"`
- 好友:标题「帮他付款」,主按钮「帮他付款」
3. **后端**detail 接口返回 `initiatorUserId` 供前端区分
### 经验
- 代付分享入口:优先「进入代付页再分享」而非「弹窗分享」,符合用户心智
- 同一页面根据 `initiatorUserId` 与当前用户比对,展示不同 UI
---
## 代付统一到代付页(禁止阅读页代付)
### 规则
代付必须在代付页完成,禁止在阅读页代付。代付页可显示部分文章信息。
### 实现
- 读页:`gift=1&ref=requestSn` 打开时,`redirectTo` 到 gift-pay/detail不展示阅读页
- 代付页:已展示 description章节标题等、金额、发起人昵称
---
## 目录页 loading、首页最新新增
- 目录页:`book/parts` 加载时 `partsLoading: true`,展示旋转圈 +「加载目录中...」
- 首页最新新增:默认 5 条、折叠状态,`>5` 时显示「展开更多」

View File

@@ -12,3 +12,4 @@
| 2026-03-12 | 链接标签 mpKey、@ 人物 token 兑换contentParser、onLinkTagTap、onMentionTap | [2026-03-12.md](./2026-03-12.md) |
| 2026-03-14 | 我的页设置入口隐藏;资料修改引导场景梳理(登录后、@某人、找伙伴、链接卡若) | [2026-03-14.md](./2026-03-14.md) |
| 2026-03-16 | 编辑资料页分享名片:转发/朋友圈特殊处理Canvas 绘制封面,标题「昵称+为您分享名片」 | [2026-03-16.md](./2026-03-16.md) |
| 2026-03-17 | 代付美团式:读页→代付页→分享;详情页双态(发起人/好友);目录 loading、最新新增 5 条折叠 | [2026-03-17.md](./2026-03-17.md) |

View File

@@ -48,6 +48,8 @@
| 2026-03-16 | 软件测试 | 配置约定 | testing SKILL | pytest 架构、配置从 soul-api/.env* 读取、SOUL_TEST_ENV 必显;运行前报告头部显示测试环境,避免误测正式库 |
| 2026-03-16 | 小程序 | 最佳实践 | miniprogram-dev SKILL §10 | 编辑资料页分享名片:转发/朋友圈特殊处理Canvas 绘制 5:4 封面,标题「昵称+为您分享名片」,路径 member-detail |
| 2026-03-16 | 开发助理 | 交互习惯分析 | - | 乘风读取 agent-transcripts 抽样分析角色触发词、表达方式、工作流程、沟通风格、技术偏好、Agent 响应建议 |
| 2026-03-17 | 小程序、后端、团队 | 业务规则/bug 修复 | - | 代付美团式读页→代付页→分享PayNotify beneficiaryUserID 权益归发起人detail 返回 initiatorUserId目录 loading、最新新增 5 条折叠 |
| 2026-03-17 | 小程序 | 业务规则 | - | 代付统一到代付页gift=1&ref 打开 read 时 redirectTo 代付页,禁止在阅读页代付 |
---
@@ -58,4 +60,4 @@
---
**最后更新**2026-03-16编辑资料页分享名片
**最后更新**2026-03-17代付美团式与 PayNotify 完善

View File

@@ -19,9 +19,12 @@
| 2026-03-11 | 会议收尾:开发团队对齐业务逻辑与以界面定需求;纪要生成、各角色经验入库、项目索引与会议索引更新 | 已完成 |
| 2026-03-16 | 乘风发起例行开发进度同步 | 已完成 |
| 2026-03-16 | 乘风读取 agent-transcripts 分析交互习惯,总结经验并吸收 | 已完成 |
| 2026-03-17 | 吸收需求代付美团式流程、PayNotify 权益归属、目录 loading、最新新增 5 条折叠 → 开发文档与 agent | 已完成 |
| 2026-03-17 | 乘风吸收经验与交互:迁移完成度与待办清单、运营与变更第十二部分 | 已完成 |
| 2026-03-17 | 吸收新需求代付统一到代付页gift=1&ref redirectTo→ 需求汇总、找朋友代付流程、运营与变更 | 已完成 |
> **格式说明**:每次开发后在此追加一行,日期格式 YYYY-MM-DD状态用已完成 / 进行中 / 待续 / 搁置
---
**最后更新**2026-03-16交互习惯分析
**最后更新**2026-03-17吸收代付与体验优化需求

View File

@@ -31,9 +31,10 @@ soul-apiGo + Gin + GORM + MySQL提供三组路由`/api/miniprogram/*`
| 2026-03-16 | 乘风发起例行开发进度同步 | 已完成 |
| 2026-03-16 | ParseAutoLinkContent 添加 data-label存客宝 create planType=1 sceneId=9 status=1 | 已完成 |
| 2026-03-16 | 会议new-soul 新需求与当前项目差异分析content_upload.py 与 chapters 一致性待核对 | 待续 |
| 2026-03-17 | 代付 PayNotify 权益归属修复beneficiaryUserID代付=发起人gift-pay detail 返回 initiatorUserId | 已完成 |
> **格式说明**:每次开发后在此追加一行,日期格式 YYYY-MM-DD状态用已完成 / 进行中 / 待续 / 搁置
---
**最后更新**2026-03-16
**最后更新**2026-03-17

View File

@@ -27,9 +27,10 @@ Soul 创业派对全项目架构与约定路由隔离miniprogram/admin/db
| 2026-03-14 | 内容排名算法跨端复用:管理端内容排行与小程序精选推荐共用 computeArticleRankingSections排名分公式、权重配置统一 | 已完成 |
| 2026-03-16 | 乘风发起例行开发进度同步 | 已完成 |
| 2026-03-16 | TipTap Mention 需 data-label 规则;链接人与事与存客宝对接优化会议收尾 | 已完成 |
| 2026-03-17 | 代付美团式流程与权益归属约定:读页→代付页→分享;权益/分佣归发起人PayNotify beneficiaryUserID | 已完成 |
> **格式说明**:每次架构级讨论后在此追加一行,日期格式 YYYY-MM-DD
---
**最后更新**2026-03-16
**最后更新**2026-03-17

View File

@@ -34,9 +34,12 @@
| 2026-03-16 | 乘风发起例行开发进度同步 | 已完成 |
| 2026-03-16 | 编辑资料页分享名片:转发/朋友圈改为分享名片Canvas 封面(头像+昵称+四栏信息),路径 member-detail | 已完成 |
| 2026-03-16 | 会议new-soul 新需求与当前项目差异分析派对AI 小程序站管理与当前一致 | 已完成 |
| 2026-03-17 | 代付美团式:读页→创建请求→跳转代付详情页;详情页双态(发起人分享/好友帮他付款);目录 loading、首页最新新增 5 条折叠 | 已完成 |
| 2026-03-17 | 代付统一到代付页gift=1&ref 打开 read 时 redirectTo 代付页,禁止在阅读页代付 | 已完成 |
| 2026-03-17 | 代付页营销:章节标题+20%内容预览;我的代付列表点击进详情;页面协调 | 已完成 |
> **格式说明**:每次开发后在此追加一行,日期格式 YYYY-MM-DD状态用已完成 / 进行中 / 待续 / 搁置
---
**最后更新**2026-03-16
**最后更新**2026-03-17