--- title: prop-acc · 场景 - B 流 - 小程序下单 + 支付宝 aliases: - 场景 - B 流 - 小程序下单 + 支付宝 - 场景-B流-小程序下单+支付宝 tags: - 场景 - prop-acc - 一次性收费 - 业务场景 - B流 audience: - 业户 - 业务人员 status: 已发布 last_review: 2026-05-25 code_version: 2026-05-22 --- # 场景:小程序下单 + 支付宝 业户在小程序内下单,**用支付宝(而非微信)** 完成支付。 > [!info] 几乎与微信流程一致 > 这个场景与 [[场景-B流-小程序下单+微信支付]] 99% 相同。本文档只描述**两种支付渠道的差异**。 ## 业户视角 ### 与微信支付流程的区别 | 维度 | 微信支付 | 支付宝 | |---|---|---| | 入口 | 微信小程序内拉起微信支付 | 微信小程序中**通过 H5 跳转支付宝**(或扫支付宝二维码)| | 跳转体验 | 流畅(同一应用内) | 略多 1-2 步(跨应用)| | 适用业户 | 偏年轻用户、华南地区 | 全国通用、商务用户更习惯 | | 商户费率 | 0.2-0.6% | 0.55% | | 回调速度 | 秒级 | 秒级(偶尔几十秒) | ### 业户实际操作 1. 在小程序选项目下单(完全相同) 2. 提交后选择"支付宝支付" 3. **微信小程序提示**:"即将跳转到支付宝完成支付" 4. 点确认 → 自动跳转支付宝 App 5. 输入支付宝密码 / 指纹完成支付 6. **自动跳回小程序**,显示支付成功 > [!success] 完成 > 跨应用跳转 → 回跳整个过程通常 < 10 秒。 ## 业务人员视角 ### 与微信流程的唯一区别:对账 > [!warning] 月底对账要分账户 > - 微信支付的款进**物业微信商户号** > - 支付宝的款进**物业支付宝商户号** > > 两个商户号一般绑定**两个不同的银行账户**。月底对账时,要分别拉两边的流水。 在 Filament 后台,`CollectionOrder.payment_channel` 字段区分了不同支付方式: ``` collection_orders ├── payment_channel: "微信支付" → 对账走微信流水 └── payment_channel: "支付宝" → 对账走支付宝流水 ``` 财务月底查询: ```sql -- 微信渠道 SELECT SUM(actual_amount) FROM acc_collection_orders WHERE collection_completed_at BETWEEN '2026-05-01' AND '2026-05-31' AND payment_method LIKE '%微信%'; -- 支付宝渠道 SELECT SUM(actual_amount) FROM acc_collection_orders WHERE collection_completed_at BETWEEN '2026-05-01' AND '2026-05-31' AND payment_method LIKE '%支付宝%'; ``` 详见 [[场景-审计-月底现金对账]]。 ## 系统流程 ```mermaid sequenceDiagram participant 业户 participant 小程序 participant 系统 participant 支付宝 业户->>小程序: 下单,选支付宝 小程序->>系统: POST /api/ad-hoc-events 系统-->>小程序: 订单号 CO-xxx + 支付宝拉起参数 Note over 小程序,支付宝: 跨应用跳转 小程序->>支付宝: 拉起支付(H5/SDK) 业户->>支付宝: 密码 / 指纹 支付宝->>系统: POST /webhook/alipay 系统->>系统: MarkAdHocEventPaidAction (payment_channel='支付宝') 系统->>系统: 同微信流程,翻 Completed + 生成 Receipt 系统-->>小程序: 推通知 支付宝-->>业户: 跳回小程序 小程序-->>业户: 显示已付款 ``` ## 常见问题 > [!question] 业户没装支付宝怎么办? > 微信小程序内拉起支付宝**要求业户手机里装了支付宝 App**。没装的话会失败。变通方案:让业户选微信支付,或换 [[场景-跨渠道补缴|跨渠道到前台]] 现金/POS。 > [!question] 支付宝跳转回小程序失败怎么办? > 这种情况钱已经扣了但小程序没显示成功。**支付宝有"支付成功通知"** 推送给业户,业户在支付宝里能看到。系统的支付宝回调一般 30 秒内能到,**让业户等等**,不要重复支付。 > [!question] 为什么不直接做支付宝小程序? > 单独做一个支付宝小程序意味着双套代码,运营也要双倍发文章。**等业户群超过 30% 用支付宝时再考虑**。当前**微信小程序 + 跳转支付宝**是最划算的方案。 > [!question] 业务人员能在后台手动加一笔"支付宝退款"吗? > 当前不在 UI 暴露(同微信)。退款流程: > 1. 业户申诉 > 2. 业务人员去支付宝商户后台手动发起退款(支付宝平台操作) > 3. 在 Filament 后台对应订单走 [[场景-已收款作废]] 标记 > > 等支付网关 webhook 上线后,可以自动化。 ## 相关概念 - [[概念-A流与B流]] - [[概念-CollectionOrder与Receipt]] — `payment_method` 字段区分渠道 - [[场景-B流-小程序下单+微信支付]] — 标准 B 流 - [[场景-审计-月底现金对账]] — 多渠道对账 ## 异常分支 - 支付完成但小程序卡死 → 系统会按 webhook 数据为准,后台可见已收款 - 想取消未付订单 → 场景-取消-业户改主意主动撤单