背景
基于公司ys的工作使用来讲。
数据来源
手续费字段的值,从哪里来?
有两种情况,一种是内部计费,一种是外部计费。
内部计费
内部计费的意思是,交易系统计费。具体的话,是调用计费系统的计费接口计费。
外部计费
外部计费的意思是,直接来自入参。交易系统不需要计算,直接使用入参的值,因为别人已经计算好了。
虽然有外部计费,但是大部分情况,都是内部计费。
表字段
订单表和订单明细表冗余存储。核心字段,都会冗余存储。
有没有专门的手续费账户?
有。所以,记账的时候是:
1、收款方账户
2、收款方手续费账户
具体记账细节看下文。
收款方账户
入参,包含金额字段:
1、总金额
2、可提现
3、不可提现
收款方账户,是入账到不可提现字段。比如,收款1000,那么入账金额就是+1000。
注意,刚才的不可提现字段是入参,账户表真正记账的时候,肯定是:
1、总金额
加订单金额1000
2、可提现
3、不可提现
加订单金额1000
说白了,就是账户表的总金额和不可提现,这两个字段都要加1000。
入参-不可提现字段,只是标记加到账户表的不可提现字段。
收款方手续费账户
入参,包含金额字段:
1、总金额
手续费2块钱
2、可提现
3、不可提现
入参,包含金额字段,和上面一样。因为使用的是同一个入参类的不同对象。
但是,入账的金额字段不一样,手续费是入账到总金额字段。比如,手续费是2块钱,那么入账金额就是+2。
说白了,手续费账户,只是记录钱的加减。但是,主账户,是有不可提现和可提现之间的转换的,所以,一般情况下,都是先入账到不可提现字段,等清结算对账对科目对平之后,再把钱从不可提现字段加到可提现字段。
账户id
既然手续费是独立的账户,所以收款方手续费账户,也是独立的账户id。
也就是说,收款方有多个账户,当然也就有多个账户id。
流程图
支付
支付的时候,更新表字段
银联通知支付成功
支付成功之后,才记账