● 微信支付服务商(二、分账功能)

文章索引: 微信支付服务商(一、踩坑记录) 微信支付服务商(二、分账功能)

1、普通服务商分账比例问题

微信支付普通服务商分账比例最高30%,官方没有告知原因,经搜索查证后如下:

相关资料: 知乎 - 为什么微信支付分账功能最高分账比例只有30%?

微信30%的分账比例限制,可参考依据:根据国务院《直销管理条例》第二十四条规定,直销企业至少应当按月支付直销员报酬。直销企业支付给直销员的报酬只能按照直销员本人直接向消费者销售产品的收入计算,报酬总额(包括佣金、奖金、各种形式的奖励以及其他经济利益等)不得超过直销员本人直接向消费者销售产品收入的30%。

按照国家法律法规,不管是第三方模式,还是外包模式,都只能分账最高30%。

如果有这种业务,比如:外包模式下服务商为特约商户开发小程序,功能为共享电单车,与特约商户签约用户租用骑行电动车包月费用特约商户分账99%,服务商分账1%;服务商在特约商户小程序上挂靠出售电动车,服务商分账95%,特约商户分账5%。

这种模式需要两种组合: 第一种:外包模式+普通服务商模式; 第二种:中心化模式+普通服务商模式; 这种合作方式,实现后台自动分账就特别麻烦,需要服务商再用一个新主体注册一个特约商户。

2.接入流程

图片资料来源: https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=24_3&index=3

开发步骤: 1、服务商代子商户发起添加分账接收方请求(添加分账接收方API); 2、在统一下单API、付款码支付API、委托扣款API中上传新增参数profit_sharing,请求支付; 3、支付完成后,调用请求分账接口,完成分账。

「添加分账接收方」和「请求单次分账」接口的签名加密方式为HMAC-SHA256

3.添加分账接收方

文档资料: https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_3&index=4

没有任何技术难度,但是xml里套json很恶心。

4.请求单次分账

文档资料: https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_1&index=1

这一步也没有任何技术难度,在CURL POST的时候,需要附带服务商的API证书。

4.1 服务商分账全流程

1、交易成功后,订单资金扣除微信支付手续费后先冻结,等待分账(假设交易手续费费率是1%)

2、当服务商或商户判断已达到分账条件,比如用户确认收货后,服务商发起分账指令,订单资金解冻分给相关方

4.2 资金流向

文档资料: 服务商模式支付之后资金是直接到特约商户的账户上么?

从上图可知,微信支付后,资金清算到特约商户,再在特约商户账户中进行分账。如果有分账,会在特约商户资金明细里产生3笔记录:用户充值全额记录、微信平台收取的交易手续费、分账扣除记录,如下图所示:

4.3 分账动账通知

文档资料: https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_9&index=11

「请求单次分账」接口不会返回实时分账结果,需要在分账接收方商户后台设置分账动账通知

在商户平台设置了分账动账通知url,为什么收不到通知? A22:请按照以下几点排查:

  1. 未设置动账通知url,该链接是通过商户平台【交易中心-分账接收设置】中配置的通知url,必须为https协议。如果链接无法访问,商户将无法接收到微信通知。必须为直接可访问的url,不能携带参数。示例:notify_url:https://pay.weixin.qq.com/wxpay/123456789
  2. 商户未设置加密的密钥,请登录商户平台操作!请参考http://kf.qq.com/faq/180830E36vyQ180830AZFZvu.html
  3. 只有分账接收方才能收到分账动账通知,分账方是不会有通知的

注意这里的细节(特别是第2条): 1、需要在分账接收方商户平台设置动账通知https的url; 2、分账接收方商户平台需要设置APIv3密钥,就算使用V2的接口,也要设置APIv3密钥; 3、这些操作都是在分账接收方商户平台完成。

文档资料: https://developers.weixin.qq.com/community/pay/doc/000284823e8460aada68dacca5b008