做生活服务类平台,支付能力是核心基础设施。我们的业务结构不复杂:用户下单付款,服务方完工后收到平台结算。一个收,一个出,看起来很简单。
实际做下来,光是”用哪个产品”这个问题就折腾了一圈。
先从”错误答案”开始:我们最开始想用微信分账
平台设计资金流的时候,第一反应是用微信分账(ProfitSharing)。逻辑很直觉:用户付钱给平台,平台再按比例把大头分给服务方,平台留小头当佣金。这不就是分账吗?
带着这个思路认真研究了微信支付分账的官方文档,结论是:对我们的场景,分账行不通。
分账的实际规则(官方版)
分账的机制是:用户付款后资金先全额到平台账户,平台再把指定金额”分”给其他收款方。
官方文档对接收方的规定:支持商户账户(MERCHANT_ID)和个人零钱账户(PERSONAL_OPENID),也就是说,个人微信用户是可以作为分账接收方的,这一点没有主体资质限制。(接收方类型说明)
但卡住我们的是另一个规则:
订单所有分账金额之和,不得超过商户平台设置的”订单分账最大比例”上限。默认最高分账比例为 30%。
这里要说清楚:30% 是整笔订单的总分账上限,指所有收款方加起来的分账比例,不是”每个收款方单独 30%“。也就是说,如果订单金额是 100 元,默认情况下最多只能通过分账分出 30 元给其他方,剩余 70 元全留在平台。
对我们来说,服务方应该拿到订单金额的 70%~80%,平台只收 20%~30% 的佣金。这个比例明显超出了默认上限。
理论上,这个 30% 的上限是可以申请调高的(分账常见问题),但需要向微信提交申请并审批,流程周期不可控,且审批标准不透明。加上个人收款方还有一条无法回退的限制——一旦分账给个人用户,资金不能撤回——在业务不稳定的早期,这种操作风险我们不太能接受。
综合下来,分账在我们的场景下成本太高,放弃,转向商家转账到零钱。
两条资金链,两个产品
确定方向之后,整个支付体系的结构是这样的:
- 用户付款:小程序 JSAPI 支付,用户在微信里下单付款,资金进入平台商户账户
- 服务方收款:商家转账到零钱,订单完成后平台主动把钱打给服务方的微信账户
两条链路方向相反,产品完全独立,申请和配置各走各的。
接下来遇到的问题:两个平台、三件独立的事
微信的支付能力分布在两个完全不同的平台:
- 微信开放平台(open.weixin.qq.com):管应用的,注册 App 拿 AppID,是应用在微信生态里的”户口”
- 微信商户平台(pay.weixin.qq.com):管收款和出款的,开通支付产品、配置商户能力
这两个平台之间不会自动同步,需要手动建立关联。根据商户文档中心的接入准备说明,在对接支付之前,实际上要完成三件独立的事:
- 在开放平台注册应用 → 拿 AppID
- 在商户平台申请对应支付产品 → 商户号具备对应的收款或出款能力
- 把 AppID 和商户号绑定 → 告诉微信”这个应用对应这个商户”
三件事,三套审批,三个进度,没有统一看板。
第一堵墙:“商户APP支付权限未开通”
去商户平台的 AppID 账号管理想把开放平台的 AppID 关联过来,结果碰到:
“商户APP支付权限未开通,请开通后再进行配置操作”
这句话容易被误解为”应用没审核通过”,实际上意思是:当前商户号没有开通 APP 支付这个产品能力,连绑定入口都不让进。 不是 App 的问题,是商户号还没有这个权限。
第二堵墙:一个不需要支付的 App,被要求开通支付权限
这里有一个让我相当无语的逻辑。
我们这个 App 的定位是服务方管理端:接单、查看任务、确认完工。用户付款发生在小程序里,这个 App 本身从头到尾不处理任何支付。 它只是平台打款给服务方的时候,需要用到服务方在这个 App 下的微信身份(OpenID)。
但是,要把这个 App 的 AppID 绑定到商户号上,前提是:商户号必须先开通”APP 支付”这个产品。
于是出现了这么一个情况:一个永远不会收用户一分钱的 App,必须走完一整套”APP 支付”的申请审核流程,才能让平台把钱打给用对它的人。
去商户平台申请”APP 支付”产品,申请材料要求填:
- App 在应用商店的下载链接
- 应用图标和截图
- Android 包名和签名 / iOS Bundle ID
意思是,要拿到这个我们根本不需要的支付权限,得先有一个已经上架、可公开访问的 App。
而我们的 App 还在开发,功能没做完,当然没有上架。
先上架才能申请,先申请才能上架。死锁。
怎么解的
最后我们走了一条相对务实的路:
先上架一个不带服务方收款功能的版本。
功能上砍掉还没做完的服务方结算部分,把用户侧的核心流程跑通,先提交应用商店审核。
同时提交了两个平台:小米应用商店和腾讯应用宝。小米审核周期相对短,先通过了;应用宝那边审核时间相当长,一直在排队。
拿着小米应用商店的上架链接,回到微信支付提交 APP 支付的申请,顺利通过审核,拿到了 APP 支付产品权限。
这个顺序和策略是当时摸出来的,后来发现思路是对的:微信支付对”下载链接”的要求,核心是验证 App 的真实性,而不是要求你在所有平台都完成上架。 一个主流应用商店的上架证明就够了。
整个决策和推进过程
flowchart TD
A[平台资金流设计\n用户付款 + 服务方结算] --> B{选哪个支付产品?}
B --> C[方案一:微信分账]
C --> D{评估官方规则}
D --> E[默认分账总比例上限 30%\n服务方需拿 70-80% 超出上限]
D --> F[个人收款无法回退\n早期运营风险高]
E --> G[❌ 分账不适合此场景]
F --> G
B --> H[方案二:商家转账到零钱]
H --> I[✅ 无比例限制\n个人收款支持\n操作灵活]
I --> J[开始接入流程]
J --> K[微信开放平台\n注册 App → 拿 AppID]
K --> L{去商户平台绑定 AppID}
L --> M[❌ 报错:商户APP支付\n权限未开通]
M --> N{去申请 APP 支付产品}
N --> O[❌ 要求先提供\nApp 上架链接]
O --> P[决策:先上架一个\n不含服务方结算的版本]
P --> Q[提交小米应用商店 + 腾讯应用宝]
Q --> R[小米审核通过\n应用宝审核中...]
R --> S[用小米上架链接\n提交微信支付 APP 支付申请]
S --> T[✅ APP 支付权限通过]
T --> U[绑定 AppID 与商户号]
U --> V[✅ 收款链路打通]
V --> W[单独申请商家转账产品]
W --> X[✅ 服务方结算链路打通]
正确的推进顺序(可用作清单)
- 确认商户主体:在微信商户平台注册商户,完成企业资质审核,拿到商户号(mch_id)
- 在微信开放平台注册应用:小程序或移动 App,拿到 AppID
- 评估分账可行性:如果服务方需要拿订单金额的大头(超过 30%),分账的默认总比例上限会卡住,需要额外申请调高或换用其他产品
- 申请支付产品:
- 用户在小程序付款 → 申请小程序支付(JSAPI),门槛相对低
- 需要将 App 的 AppID 绑定到商户(即使 App 本身不收款)→ 必须先申请 APP 支付,需要 App 上架链接
- 解决 App 上架问题:如果 App 还没上架,可以先发布一个功能不完整的版本,在主流应用商店(小米、华为等)上架后拿链接提交,不需要在所有平台都完成上架
- 绑定 AppID 与商户号:商户平台 → 产品中心 → AppID 账号管理
- 单独申请商家转账产品:如果需要主动给服务方打款,这是独立产品,走独立审批流程
收款和出款是两套完全不同的体系
最后单独说这一点,因为它在产品设计上容易被忽略。
用户付款(收款) 和 给服务方打款(出款) 在微信商户体系里是两条独立的产品线,各有各的申请资质、审批流程和风控规则。
开通了收款,不代表可以出款。这两件事要分开评估、分开推进,在产品路线图上不能默认它们会同时就绪。
后记
整个过程是靠对照微信官方文档一点一点理清楚的。分账那段规则,官方文档写得比较散,需要把产品介绍、接入准备、常见问题几个页面放在一起看才能拼出完整图景。
事后搜了一下,发现有不少平台踩过完全相同的坑。希望这篇能帮做类似业务的产品经理在设计阶段就把选型想清楚,少走一些弯路。
参考文档
- 微信支付分账产品介绍 — 分账机制、比例规则、接收方类型
- 分账接收方类型说明(添加接收方 API) — 支持 MERCHANT_ID 和 PERSONAL_OPENID 两种
- 分账常见问题 — 包含比例上限调整申请说明
- APP 支付接入说明 — APP 支付产品的申请材料要求
- 小程序支付接入说明 — JSAPI 支付产品文档
- 商家转账产品文档 — 商家主动转账给个人的产品说明
- 微信开放平台 — 注册移动 App / 小程序、申请 AppID 的入口
- 微信商户平台 — 支付产品申请、AppID 绑定、商户配置的入口