支付宝分账逻辑

支付宝的分账功能允许商户将收到的款项按一定的比例或金额分配给其他参与方。支付宝分账的流程包括发起支付、分账操作、以及可选的分账回退。分账逻辑相对较为严格,需要在特定条件下执行分账操作。

1. 基础流程
  • 发起交易:用户发起支付后,款项首先进入商户账户。
  • 申请分账:商户可以通过支付宝的分账接口,将部分款项分配给其他合作伙伴或服务提供方,称为“分账接收方”。
  • 分账执行:支付宝会根据商户的分账请求,将款项划拨到指定接收方的支付宝账户中。需要注意的是,分账操作必须在交易支付完成后才可以进行。
2. 主要特性
  • 可选分账:分账操作是可选的,商户可以根据实际情况决定是否发起分账。
  • 分账的可控性:商户可以控制分账的金额和比例,但分账金额不能超过交易总金额,且分账比例需要符合规定。
  • 分账回退:如果分账后发现某些款项需要回收(比如发起退款),可以通过分账回退接口将分配给分账接收方的款项回退给商户。
3. 分账规则
  • 单笔交易最多支持20个分账接收方
  • 分账比例:商户可以自由设定分账金额或比例,但每个接收方的分账金额不能超过支付总金额。
  • 分账账户类型:支持分账到支付宝账户、银行账户等,但大多数常见的应用场景是分账到支付宝账户。
  • 分账的时效性:分账必须在交易完成后的有效期内发起(通常为交易完成后1年内)。
4. 分账回退

分账回退是指将已经分配给接收方的款项退回给发起分账的商户。支付宝分账回退的规则比较严格,只有在特定情况下才允许进行:

  • 全额回退或部分回退:可以根据实际情况选择全额或部分回退。
  • 回退只退回商户:回退的金额只能退回给发起分账的商户,不允许直接退回到用户。
  • 回退期限:分账完成后,回退必须在规定时间内进行,通常与交易退款的时间范围相同。
5. 示例流程
  • 分账接口调用
{
  "out_order_no": "20180630001",        // 商户分账单号
  "trade_no": "2018062921001004280200143483", // 支付宝交易单号
  "royalty_parameters": [
    {
      "trans_out": "2088102176275842",  // 商户支付宝账号
      "trans_in": "2088101126708402",   // 分账接收方支付宝账号
      "amount": "10.00",                // 分账金额
      "desc": "服务分账"                // 分账描述
    }
  ]
}

微信支付分账逻辑

微信支付的分账功能与支付宝类似,允许商户将款项按比例分配给多个合作伙伴或服务提供方。微信分账的流程相对也较为严格,并且需要在特定的条件下进行。

1. 基础流程
  • 发起交易:用户通过微信支付进行交易,款项进入商户的微信支付账户。
  • 申请分账:交易完成后,商户可以通过微信支付的分账接口,将部分款项分给分账接收方。分账通常在交易完成后发起,可以是一次性分账或多次分账。
  • 分账执行:微信支付系统根据分账请求,将款项按比例划拨到指定的接收方账户中。
2. 主要特性
  • 延迟分账:微信支付允许商户选择分账延迟功能,即可以在交易完成的较长时间后再进行分账。
  • 多次分账:微信支付允许对一笔交易进行多次分账,适用于复杂的业务场景。
  • 分账回退:若发现错误或业务调整,需要将已分账的款项退回商户账户,可以通过分账回退接口来执行。
3. 分账规则
  • 单笔交易最多支持50个分账接收方
  • 分账金额上限:每个分账接收方的分账金额不能超过总交易金额的100%。
  • 分账限制:分账金额必须与分账接收方的实际业务贡献相匹配,且分账操作必须在交易成功后进行。
  • 服务商模式:微信分账功能特别支持服务商模式,即服务商代为管理和分配商户的款项。
  • 冻结模式:微信支付支持分账冻结功能,即在分账前,商户可以暂时冻结部分款项,确保资金安全。
4. 分账回退

微信支付支持的分账回退机制允许商户将已分账的款项退回到商户账户,但不能退回到用户账户。分账回退的操作限制较为严格,必须满足以下条件:

  • 只能回退到商户账户:回退的资金只能返回商户,不允许退回到用户或其他分账接收方。
  • 回退金额限制:回退的金额不能超过已分账的金额,且回退必须在交易退款期限内完成。
  • 回退请求的幂等性:每次分账回退请求都需要提供一个唯一的回退请求单号,确保幂等性。
5. 示例流程
  • 分账接口调用
{
  "appid": "wx8888888888888888",         // 商户公众号ID
  "mch_id": "1900000109",                // 商户号
  "transaction_id": "4208450740201411110007820472", // 微信订单号
  "out_order_no": "P20150806125346",     // 商户分账单号
  "receivers": [
    {
      "type": "MERCHANT_ID",             // 分账接收方类型
      "account": "1900000109",           // 分账接收方商户号
      "amount": 100,                     // 分账金额,单位为分
      "description": "分给商户"
    }
  ]
}
6. 微信分账与支付宝分账的对比
  • 分账模式
  • 支付宝:只能一次性发起分账,且每笔交易最多支持20个分账接收方。
  • 微信支付:允许多次分账,每笔交易最多支持50个分账接收方。
  • 分账回退
  • 支付宝:允许将已分账款项退回给发起分账的商户。
  • 微信支付:同样允许分账回退,但只能回退到商户账户。
  • 分账时效性
  • 支付宝:分账必须在交易完成后发起,且有一定的时效性要求。
  • 微信支付:分账可以延迟,甚至在交易成功后较长时间内发起。

总体来说,支付宝和微信支付的分账逻辑在基础功能上类似,但微信支付的分账功能更加灵活,支持多次分账、延迟分账等复杂场景。而支付宝的分账功能则更加简洁,适合单次分账的场景。