Files
uniprop-manual/prop-acc/scenarios/adhoc/flow-b-miniapp-wechat-pay.md
Willie 35c0147a7b P3.5: prop-acc 启用子模块嵌套(adhoc/),应对大型业务域扩展
背景:
单纯按 UDAS 严格扁平,prop-acc/scenarios/ 装齐 7 子模块后预计 100-150
篇 .md 单一文件夹,Explorer 无法浏览、Quartz folder page 无法阅读。

扩展规则(已写入 SKILL.md 多域章节 + multi-domain.md 第 10 节):
- 单类型文件夹文件数 > 30 且能按业务子模块分组时,启用嵌套
- 路径:<domain>/<type>/<sub-feature>/<file>.md
- 文件名去 <sub-feature>- 前缀(路径已表达)
- title 三段式:<domain> · <sub-feature> · <名>
- frontmatter 新增 sub_feature 字段(便于 RAG 过滤)
- 跨子模块文档落在 <domain>/<type>/(不进子文件夹),与"跨域→cross/"对称

本次迁移:
- prop-acc/concepts/adhoc-*.md (3)  → prop-acc/concepts/adhoc/*.md
- prop-acc/scenarios/adhoc-*.md (25) → prop-acc/scenarios/adhoc/*.md
- 每个文件:title 加 adhoc 段、aliases 追加旧 prop-acc · 前缀形式(兼容)、
  新增 sub_feature: adhoc 字段

WikiLink 解析未受影响:
- 既有 [[场景-A流-...]] 等 200+ 引用通过 aliases (含旧 basename) 解析
- 新引用可用 [[adhoc · 前台购买 IC 卡]] 或 [[prop-acc · adhoc · 前台购买 IC 卡]]
- 各域 knowledge-map.md 内 WikiLink 全部仍有效

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 20:55:59 +08:00

4.7 KiB

title, aliases, tags, audience, status, sub_feature, last_review, code_version
title aliases tags audience status sub_feature last_review code_version
prop-acc · adhoc · 场景 - B 流 - 小程序下单 + 微信支付
prop-acc · 场景 - B 流 - 小程序下单 + 微信支付
场景 - B 流 - 小程序下单 + 微信支付
场景-B流-小程序下单+微信支付
场景
prop-acc
一次性收费
业务场景
B流
业户
业务人员
已发布 adhoc 2026-05-25 2026-05-22

场景:小程序下单 + 微信支付

线上 B 流的标准路径。业户自助、24h 可办、无需到柜台

[!warning] 当前阶段 后端数据模型 + Action 已就绪(2026-05-21 落地)。小程序 API + 支付网关回调 webhook 还在开发。本场景描述的是上线后的完整体验。

典型情境

[!example] 真实情境 小李,32 岁,周三晚上 9 点在家想给老婆买张游泳卡。物业前台早下班了,但他打开物业小程序,5 分钟搞定。

业户视角(您要做什么)

第 1 步:打开小程序

进入"我家 → 一次性收费"

第 2 步:选项目

页面上列出您能买的项目(IC 卡 / 装修证 / 泳票 / 充电桩电费 / ...)。点击"游泳卡"。

第 3 步:确认订单

  • 项目:游泳卡(月卡)
  • 单价:¥200
  • 数量:1(可调)
  • 金额:¥200

[!info] 系统里发生了什么 您点"确认下单"后,系统冻结当前价格(以后涨价不影响您这单),给您一个订单号。

订单状态此刻:Pending(待付款),30 分钟内有效

第 4 步:微信支付

跳转到微信支付页面,密码 / 指纹 / 扫脸付款。

第 5 步:小程序通知

支付成功后,小程序弹通知:"已付款,可至前台领取游泳卡" + 收据 PDF 自动生成,在"我的订单"里可下载。

[!success] 完成 系统状态此刻:订单 Completed,收据 Issued,所有记录归档。

业务人员视角

[!tip] 前台几乎不用操作 业户线上完成全部流程,前台只需在业户来取货时核对订单号:

  1. 打开 Filament 后台 → 一次性收费
  2. 搜业户的订单号(CO-xxx)
  3. 确认状态是 Completed
  4. 把游泳卡 / 物理凭证交给业户

不需要再录任何东西 —— 业户线上做完了所有数据录入

系统流程(技术视角)

sequenceDiagram
    participant 业户
    participant 小程序
    participant 系统
    participant 微信支付
    participant 监听器

    业户->>小程序: 选游泳卡、确认下单
    小程序->>系统: POST /api/ad-hoc-events
    系统->>系统: CreatePendingAdHocEventAction
    系统->>系统: 1. 建 AdHocEvent (Pending)
    系统->>系统: 2. 建 CollectionOrder (Pending, expires_at=now+30min)
    系统-->>小程序: 返回订单号 CO-xxx + 支付参数
    小程序->>微信支付: 拉起支付
    业户->>微信支付: 输入密码 / 指纹
    微信支付->>系统: POST /webhook/wechat-pay
    系统->>系统: MarkAdHocEventPaidAction
    系统->>系统: 1. 补支付字段到 CO
    系统->>系统: 2. 翻 CO → Completed
    系统->>系统: 3. 翻 AdHocEvent → Completed
    系统->>系统: 4. 清 expires_at
    系统->>监听器: 触发 CollectionOrderCompleted
    监听器->>系统: 建 Receipt + ReceiptItem
    系统-->>小程序: 推通知 + 收据 PDF
    小程序-->>业户: 弹"已付款,可来取货"

常见问题

[!question] 我下完单忘记付怎么办? 30 分钟内没付,订单自动作废,价格也释放。您可以重新下单,但价格按当前价(以防您预定旧价、等到打折涨价才付)。详见 场景-超时未付自动作废

[!question] 付了钱小程序没显示成功怎么办? 微信支付有可能延迟回调(几秒到几分钟)。别重复支付!等几分钟再看小程序"我的订单"。若 10 分钟还没更新,联系物业,他们能后台手动核实。

[!question] 我可以让我儿子帮我下单吗? 完全可以,而且您可以不用儿子付钱 —— 让儿子帮您下完单,您拿订单号到前台付现金即可。详见 场景-跨渠道补缴

[!question] 想换支付方式?微信换支付宝? 同一笔订单不能换。如果还没付,在小程序"我的订单"里撤单,重新下一单选支付宝。

异常分支

相关概念