1、涉及账户
- 商家账户;商家销售商品收入的资金保存在本账户中,每个商家有一个本账户。
- 平台未结账户;买家购买商品付款后,但还没有结算给商家的资金,保存在本账户中。
- 平台营收账户;平台赚取的佣金、广告费保存在本账户中。
- 第三方支付公司备付金账户;简称第三方账户,是平台在第三方支付公司开设的账户,平台 真h实的钱 ,保存在本账户中。
- 平台手续费账户;只负责记录手续费流水。
- 平台补贴账户:负责补贴支付手续费用,例如现在账户是6元,只能往里面补贴6元。
2、涉及动作
冻结、销户、支付、提现、退款、结算、调账。
3、账户管理
1、开户
-
- 商家会员开店成功后,系统自动开通商家账户;;
-
平台默认开通四个账户,未结算账户、营收账户、手续费账户、平台补贴账户。
2、冻结
3、销户
4、资金流向描述
a、支付:
-
-
买家使用微信或支付宝付款
- 第三方支付公司备付金账户增加,记入account_thirdparty_sn(6 第三方账户资金流水表);
- 平台未结账户的未结算金额增加,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 平台手续费账户记录流水account_user_sn(3 会员账户流水表);
- 平台补贴账户金额增加,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 以上4个流水表使用同一个业务流水号;
-
买家使用账户余额付款
(
不支持本功能
)
- 买家账户中的余额减少,记入account_user(1 会员账户表)、account_user_sn(2会员账户流水表);
- 平台未结账户中的未结算金额增加,记入account_platform(3平台账户表)、account_platform_sn(4 平台账户流水表);
- 以上两个流水表使用同一个业务流水号;
-
买家使用微信或支付宝付款
b、商品结算 :在结算之后
-
- 平台未结账户中的未结算金额减少,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 商家账户中的账户余额增加,记入account_user(1 会员账户表)、account_user_sn(2 会员账户流水表), 如果是商家负责支付服务费用,需要在记录一次手续费的流水 ;
- 平台营收账户中的余额增加,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 如果是商家负责支付服务费用, 平台补贴账户金额减少,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 以上4个流水表使用同一个业务流水号。
- 注意:结算的时候,需要在账户业务表中判断当时付款的时候是商家付的手续费还是平台付的手续费
c、会员提现
会员申请提现时,选择要申请提现的账户。
-
- 会员申请提现:商家申请提现时,商家账户/服务账户中的 账户余额减少,冻结金额增加; (资金被冻结了)
- 审核会员的提现申请:管理员审核同意后,
-
- 第三方支付公司备付金账户减少,记入account_thirdparty_sn(6 第三方账户资金流水表);
- 商家账户/服务账户中的余额不变,冻结金额减少,记入account_user(1 会员账户表)、account_user_sn(2 会员账户流水表);
- 以上两个流水表使用同一个业务流水号;
- 审核会员的提现申请:管理员审核拒绝后,商家账户/服务账户中的冻结金额减少,余额增加; (资金解冻了)
d、平台提现
-
- 平台申请提现:平台申请提现时,平台营收账户中的 账户余额减少,冻结金额增加; (资金被冻结了) 问题:目前无法记录流水
- 审核平台的提现申请:管理员审核同意后,
-
- 第三方支付公司备付金账户减少,记入account_thirdparty_sn(6 第三方账户资金流水表);
- 平台营收账户中的余额不变,冻结金额减少,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 以上两个流水表使用同一个业务流水号;
- 审核平台的提现申请:管理员审核拒绝后,平台营收账户中的冻结金额减少,余额增加; (资金解冻了) 问题:目前无法记录流水
e、退款 :买家申请退款成功后:
-
-
如果是买家使用的是微信或支付宝付款的商品,并且还未结算,退款时,钱会原路退回。
- 平台未结账户未结算金额减少,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 第三方支付公司备付金账户减少,记入account_thirdparty_sn(6 第三方账户资金流水表);
- 平台手续费账户记录流水account_user_sn(3 会员账户流水表);
-
平台补贴账户金额减少,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 以上4个流水表使用同一个业务流水号;
-
如果是买家使用的是微信或支付宝付款的商品,并且还未结算,退款时,钱会原路退回。
-
-
如果是买家使用账户余额付款的商品,并且还未结算,退款时,钱在平台内结转。
(
不支持本功能
)
- 平台未结账户未结算金额减少,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 买家账户余额增加,记入account_user(1会员账户表)、account_user_sn(2 会员账户流水表);
- 以上两个流水表使用同一个业务流水号;
-
如果是买家使用账户余额付款的商品,并且还未结算,退款时,钱在平台内结转。
(
不支持本功能
)
-
-
注意:已结算的无法退款,因为无钱可退。
-
注意:已结算的无法退款,因为无钱可退。
f、充值 :会员(买家)可通过微信或支付宝向自己账户(一般是买家账户)中充值。 ( 不支持本功能)
-
- 会员账户(一般是买家账户)中的余额增加 account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
- 平台未结账户中的总金额增加, account_user(1 会员账户表)、account_user_sn(2 会员账户流水表) ;
- 平台手续费账户记录流水account_user_sn(3 会员账户流水表);
- 平台补贴账户金额减少,记入account_platform(3 平台账户表)、account_platform_sn(4 平台账户流水表);
-
以上4个流水表使用同一个业务流水号;
g、调账:
根据需要选择多个账户,增加或减少本账户的余额,计入本账户的流水。
5、平台资金总额
平台现有资金总额 = 平台未结账户金额 + 平台营收账户余额 + 平台营收账户冻结金额 - 补贴账户 + 每个会员账户余额 + 每个会员账户冻结金额 。(商家支付服务费用)
平台现有资金总额 = 平台未结账户金额 + 平台营收账户余额 + 平台营收账户冻结金额 + 每个会员账户余额 + 每个会员账户冻结金额 。(平台支付服务费用)
1、不支持买家账户,无需要计算买家账户
2、 平台手续费账户中的钱不计算在内
6、对账
平台与第三方支付公司对账: 商品订单、服务订单 结合 account_platform_sn(4 平台账户流水表) 与 第三方支付公司,逐笔对账。 对的是支付的金额不对手续费。
平台内对账:商品订单表、服务订单表、account_user_sn(会员账户流水表)、account_platform_sn(平台账户流水表),逐笔对账。
7、账户关系图
|
8、业务场景演示(商家承担手续费)
动作 |
第三方账户(元) 可提现金额 |
平台手续费账号(元) 只记录流水 |
平台未结算账户(元) (临时) |
平台营收账户(元) (收入) |
A商家账户(元) (收入) |
补贴账户 (支出) |
---|---|---|---|---|---|---|
新开业 | 0 | 不记 | 0 | 0 | 0 | 0 |
用户a买商品 支付 1000元 | 994 | 记一条6元流水 | 1000(平台临时垫付6元手续费) | 0 | 0 | 6 |
用户b买商品 支付 500元 | 994+497=1491 | 记一条3元流水 | 1000+500=1500(平台临时垫付3元手续费) | 0 | 0 | 6+3=9 |
用户b 退款 500元, 退款同时要退手续费, 全额退款 |
994 | 记一条3元流水 | 1000 | 0 | 0 | 9-3=6 |
给商家结算, 同时平台扣除10元佣金 |
994 | 不记 | 0 | 10 |
984 记3条流水
|
6-6=0 |
商家 提现984 元 | 10 | 不记 | 0 | 10 | 0 | 0 |
平台 提现10 元 | 0 | 不记 | 0 | 0 | 0 | 0 |
9、业务场景演示(平台承担手续费)
动作 |
第三方账户(元) 可提现金额 |
平台手续费账号(元) 只记录流水 |
平台未结算账户(元) (临时) |
平台营收账户(元) (收入) |
A商家账户(元) (收入) |
补贴账户 (支出) |
---|---|---|---|---|---|---|
新开业 | 0 | 0 | 0 | 0 | 0 | 0 |
用户a买商品 支付 1000元 | 994 | 记一条6元流水 | 1000(临时垫付6元手续费) | 0 | 0 | 6 |
用户b买商品 支付 500元 | 994+497=1491 | 记一条3元流水 | 1000+500=1500(平台垫付3元手续费) | 0 | 0 | 9 |
用户b 退款 500元, 退款同时要退手续费, 全额退款 |
994 | 记一条3元流水 | 1000 | 0 | 0 | 6 |
给商家结算, 同时平台扣除10元佣金 |
994 | 不记 | 0 | 10 |
990 记2条流水
|
6 |
商家 提现990 元 | 4 | 不记 | 0 | 10 | 0 | 6 |
平台 补平6 元 | 10 | 不记 | 0 | 10 | 0 | 0 |
平台 提现10 元 | 0 | 不记 | 0 | 0 | 0 | 0 |
10、支付通道费率设置
在admin管理后台–支付方式,为每一种支付方式,设计支付手续费,微信设置为0.006, 支付宝设置为0.006
11、关于手续费账户的说明
需增加:平台手续费账户,平台补贴账户
例如1:
7月21日发生1笔支付交易金额为1000元,7月22日,微信向商户的银行账户自动结算994,自动扣除手续费。
7月22日先发生了一笔1万元交易,在7月22号,昨天的“7月21日的交易”发生1000元退款(该退款交易已结算,需要从新的交易里面扣除这部分金额)。
7月23日微信向商户的银行账户自动结算(10000 - 60手续费 - 1000退款 + 6元手续费)8946 + 之前结算金额994 = 9940
例如2:
7月21日发生1笔支付交易金额为1000元(三个订单合并支付成的金额)。
7月22日把这笔1000元进行退款,需要把平台扣除的手续费还原,进行退换给商家(手续费为6元)。
余额不足时的退款
退款时,假如“平台在微信的账户”中钱不够,会发生什么?会退款是失败?还是等“平台在微信的账户”钱够了,微信会自动补退款?
例如:
7月21日发生1笔支付交易金额为1000元,7月22日,微信向商户的银行账户自动结算994,自动扣除手续费6元。
7月22日平台提现了 994 元, “平台在微信的账户”没有钱了。
7月23日的交易发生1000元退款,“退款”操作的结果是什么?
答:
直接退款失败,待账户有余额后可以重新发起退款。调用微信退款接口,余额不够时 同步返回退款失败的结果。
余额不足时导致的微信退款下单失败,我记得是微信退款下单接口返回的结果。
可以不接退款通知回调接口(我做那会儿微信好像还没有这个接口),定时调用微信退款查询接口。
12、手续费的计算规则
保留到小数据点后两位,四舍五入。
100元*0.6% =0.6元 手续费
0.01元*0.6% = 0.00006元, 四舍五入后是0元手续费