实战复盘:我如何为电商平台从0到1接入微信收付通分账
基于真实项目经验,深入解析电商平台接入微信收付通分账的全流程。涵盖从合规背景、架构设计到核心代码实现及踩坑记录。
腾讯收付通、合单支付与分账处理说明
在平台型业务中,平台下面通常会有多个商户、供应商或门店。
例如:
景区
酒店
民宿
旅行社
门店
票务供应商
用户在平台下单后,可能一次购买多个商户的商品。平台需要解决:
用户如何一次支付?
订单金额如何拆分?
商户收入如何结算?
平台佣金如何收取?
退款时如何处理?
已经分账成功后如何退款?
腾讯收付通适合这类多商户平台业务。
一、什么是腾讯收付通?
腾讯收付通可以理解为:
微信支付为平台型商户提供的一套多商户收款、结算和分账能力。
它不是普通微信支付,而是更适合电商平台、多商户平台使用。
在腾讯收付通模式下,平台下面的商户可以作为二级商户入驻微信支付体系。用户在平台下单付款后,资金可以根据订单关系归属到对应的二级商户,同时平台也可以按规则收取佣金。
二、腾讯收付通适合哪些业务?
腾讯收付通适合平台型业务,例如:
- 电商平台
- 本地生活平台
- 旅游票务平台
- 酒店 / 民宿预订平台
- 多商户商城
- SaaS 平台
- 分销平台
这些业务有一个共同特点:
平台不是唯一的商品或服务提供方,平台下面还有多个商户或供应商。
例如旅游平台中,可能同时存在:
- 景区
- 酒店
- 民宿
- 旅行社
- 票务供应商
- 线路供应商
这些商户都可以成为平台下的二级商户。
三、普通微信支付和腾讯收付通的区别
| 对比项 | 普通微信支付 | 腾讯收付通 |
|---|---|---|
| 适合业务 | 单商户收款 | 多商户平台 |
| 商户结构 | 一个商户号 | 平台商户 + 二级商户 |
| 支付方式 | 普通支付 | 支持合单支付 |
| 资金处理 | 进入收款商户 | 可按订单规则分账 |
| 平台佣金 | 需要额外处理 | 可作为分账一方 |
| 退款处理 | 普通退款 | 需要结合分账状态处理 |
| 对账复杂度 | 较低 | 较高 |
简单理解:
普通微信支付:适合一个商户自己收款
腾讯收付通:适合平台下面有多个商户共同经营
四、腾讯收付通里的几个角色
1. 平台商户
平台商户就是平台本身。
例如:
旅游平台
电商平台
酒店预订平台
票务平台
平台主要负责:
商户入驻
商品管理
订单管理
支付发起
分账处理
退款处理
账单对账
2. 二级商户
二级商户是入驻平台的实际经营主体。
例如:
景区
酒店
民宿
旅行社
门店
供应商
平台需要将这些商户进件为微信支付二级商户。
审核通过后,二级商户才可以参与收款、分账和结算。
3. 用户
用户就是最终付款人。
用户在平台下单后,通过微信支付完成付款。
如果一个订单中包含多个商户的商品,平台可以通过合单支付能力,将一笔支付拆分到不同二级商户订单中。
4. 分账接收方
分账接收方是指订单资金最终分配给谁。
常见接收方包括:
二级商户
平台
分销商
服务商
其他合作方
其中,平台佣金也可以理解为分账的一部分。
例如:
订单金额:100 元
商户收入:90 元
平台佣金:10 元
这里的:
商户收入:90 元
平台佣金:10 元
都属于这笔订单的分账结果。
五、腾讯收付通的核心能力
1. 二级商户进件
平台需要先把入驻商户提交到微信支付体系中审核。
常见资料包括:
营业执照
法人信息
结算账户
联系人信息
经营类目
相关资质
审核通过后,商户会获得对应的二级商户号。
2. 合单支付
合单支付适合用户一次购买多个商户商品的场景。
例如:
| 商品 | 商户 | 金额 |
|---|---|---|
| 景区门票 | 景区 A | 200 元 |
| 酒店住宿 | 酒店 B | 300 元 |
| 一日游 | 旅行社 C | 150 元 |
用户只需要支付一次:
用户支付总金额:650 元
平台后台可以拆分为:
景区 A:200 元
酒店 B:300 元
旅行社 C:150 元
这样用户体验上是一笔支付,平台后台可以按商户拆分订单和资金。
3. 资金冻结
用户支付成功后,资金可以先进入冻结状态。
这样可以避免商户在服务未完成前就直接结算。
适合以下场景:
用户确认收货后再结算
门票核销后再结算
酒店入住后再结算
服务完成后再结算
4. 资金解冻
当订单完成后,平台可以发起资金解冻。
例如:
用户支付成功
↓
资金冻结
↓
用户完成核销 / 入住 / 服务
↓
平台确认订单可结算
↓
平台发起资金解冻
↓
资金进入可分账状态
5. 分账
分账是指订单满足结算条件后,平台根据业务规则,将订单金额分配给不同接收方。
常见分账接收方包括:
二级商户
平台
分销商
服务商
其他合作方
平台佣金也可以作为分账的一方。
例如:
订单金额:100 元
商户收入:90 元
平台佣金:10 元
如果存在分销关系,也可以是:
订单金额:100 元
商户收入:85 元
平台佣金:10 元
分销佣金:5 元
分账可以用于:
商户获得交易收入
平台收取服务费或佣金
分销商获得推广佣金
多个合作方按比例分润
需要注意:
支付成功 ≠ 立即分账
是否分账,应该根据业务状态判断。
比如旅游、酒店、票务类业务,建议在订单履约完成后再发起分账。
6. 分账回退
如果订单已经分账成功,后续又发生退款,就不能直接只走退款流程。
因为资金已经分给了商户、平台或其他分账接收方。
这种情况下,需要先处理分账回退。
例如:
订单金额:100 元
已分账:
商户收入:90 元
平台佣金:10 元
如果用户申请全额退款:
商户需要回退:90 元
平台需要回退:10 元
处理顺序为:
用户申请退款
↓
判断订单是否已分账成功
↓
如果已分账成功,先发起分账回退
↓
分账回退成功
↓
再发起退款
↓
退款成功
简单理解:
未分账成功:可以按普通退款流程处理
已分账成功:先分账回退,再发起退款
7. 退款
订单发生退款时,需要结合订单状态、资金状态和分账状态处理。
常见情况包括:
未分账退款
已分账退款
部分退款
合单订单退款
平台佣金退回
分账回退后退款
退款逻辑不要只看支付状态,还需要判断:
订单是否已支付
订单是否允许退款
是否已经分账
分账是否成功
是否需要分账回退
分账回退是否成功
平台佣金是否已收取
8. 对账
平台需要定期做对账,重点核对:
平台订单
微信支付订单
二级商户订单
分账记录
分账回退记录
退款记录
平台佣金
资金流水
对账目标是保证:
平台订单金额 = 微信支付金额
商户收入 + 平台佣金 + 其他分账金额 = 可分账金额
退款金额 = 分账回退金额合计
平台账务金额 = 微信账单金额
六、典型业务流程
1. 商户入驻流程
商户提交资料
↓
平台审核
↓
提交微信支付二级商户进件
↓
微信审核
↓
审核通过
↓
商户可收款
2. 用户下单支付流程
用户下单
↓
平台识别商品所属商户
↓
生成主订单
↓
按商户拆分子订单
↓
发起微信支付
↓
用户付款
↓
支付成功回调
↓
更新支付状态
3. 订单完成分账流程
支付成功
↓
资金冻结
↓
订单履约完成
↓
平台确认可结算
↓
计算商户收入
↓
计算平台佣金
↓
计算其他分润金额
↓
发起分账
↓
分账成功
↓
更新分账状态
4. 未分账退款流程
如果订单还没有分账成功,可以按普通退款流程处理。
用户申请退款
↓
平台判断是否允许退款
↓
计算可退金额
↓
调用退款接口
↓
接收退款结果
↓
更新退款状态
适合场景:
支付成功但未核销
支付成功但未入住
支付成功但订单取消
支付成功但未发起分账
5. 已分账退款流程
如果订单已经分账成功,需要先分账回退,再退款。
用户申请退款
↓
平台判断是否允许退款
↓
查询订单分账状态
↓
判断订单已分账成功
↓
计算各接收方需要回退的金额
↓
发起分账回退
↓
分账回退成功
↓
调用退款接口
↓
接收退款结果
↓
更新退款状态
例如:
订单金额:100 元
已分账:
商户收入:90 元
平台佣金:10 元
全额退款时:
商户回退:90 元
平台回退:10 元
用户退款:100 元
6. 部分退款流程
如果订单发生部分退款,需要按实际退款金额计算对应的分账回退金额。
例如:
订单金额:100 元
商户收入:90 元
平台佣金:10 元
用户申请退款 50 元,可以按比例回退:
商户回退:45 元
平台回退:5 元
用户退款:50 元
实际是否按比例回退,需要根据平台业务规则确定。
7. 合单订单退款流程
如果用户一次支付多个商户订单,退款时建议按子订单处理。
例如:
| 商品 | 商户 | 金额 |
|---|---|---|
| 景区门票 | 景区 A | 200 元 |
| 酒店住宿 | 酒店 B | 300 元 |
| 一日游 | 旅行社 C | 150 元 |
如果用户只退酒店住宿,则只处理酒店 B 对应的子订单:
酒店 B 子订单退款:300 元
如果该子订单已经分账成功,则需要:
先回退酒店 B 相关分账
↓
再退还用户 300 元