在支付公司,不管是这种转账、用户提现、收单资金划拨到银行卡、用户付款到银行卡之类之类,都归到出款,也就是从支付公司的账户出款到某个银行卡账户,这是前提1。
支付公司的出款,为了成本和速度考虑,会自己去接很多银行,一般是按照自己出款占比去挨着挨着谈,对于一些小银行或者还没谈好的银行,支付公司会选择一个或者多个支持所有银行出款通道,这样的话,对于每一个出款的通道,支付公司都会开设对应的银行账户,不可能你从工行出款,让银行从你建行的卡里面扣钱吧?这是前提2
有了出款通道,每个通道也开设了银行账户,你得往账户里面存钱吧,银行当然是先扣你的钱,才会向你指定的银行卡付款,那么你得在各个银行账户都放一笔钱,这是前提3
有了前面的前提,那我们就来设想支付公司出款的时候是个什么场景了,一家大的支付公司,类似支付宝、财付通这种级别,每天24小时都会不停收到出款请求,出款的银行卡所属的银行也是千奇百怪,要是每一笔支付公司都是实时处理,就会出现以下情况:1.支付公司自己的系统不堪重负,挂了;2.银行系统不堪重负,挂了;3,建行的账户钱没了,从工行转了一笔过来,过了一会儿工行的账户钱也没了,又得从招行转一笔钱过来,每笔跨行资金调拨都要手续费啊。支付公司不可能在每个银行账户都放上足够多的钱,因为它没那么多的钱,即使有,放进去收益点活期利息太少了吧,还不如做做定存,协议存款什么的;4.假设出款需要人工审核,每一笔都审核,岂不是要把清算累死。
好了,那前面的问题怎么解决呢?支付公司一般会把这样的出款请求,按照出款银行不同,打成一个一个的包,比如工行一个包,建行一个包,没有直连需要跨行转账的银行一个包。打包的方案可能是当时间跨度和笔数和金额任意一项达到设定的值,就可以打在一起。然后每隔半小时(YY的时间),清算看看自己银行账户的钱够不够,如果够的话,就把这批包扔出去出款,如果还差点钱,就把部分包留着,到了下一个半小时,再看看银行钱够不够,够了就扔出去,如果到了两个小时钱都还不够,那么可能就真的要从其他银行的账户转一笔钱过来了。为什么银行账户过了一会儿就会有钱呢?因为支付公司不仅付钱出去,他们还要收钱啊。(这里不讨论收付账户万一是不同的情况,即使不同,同行转账一般也能做到免费)
假如你选择了2小时到账,结果你刚好提交后就遇到了打包,刚好支付公司银行账户里面也有钱,可能2秒就到账了,你会说,我擦,这么快。。。这其实也是一种用户体验,让真实结果远远大于你的期望值。真正刚刚2小时到账的情况基本很少,一般都会提前的。
上面解释了为什么有些银行是2小时到账,下面解释下为什么有些银行是24小时到账
24小时到账的原因就是我们前面说到的,有些银行支付公司没接,那么就需要一些跨行的出款渠道,这些跨行的出款渠道,一般自己也会分批处理,再加上一些城商行啊,农信社之类的实在太小的银行,可能出款都饶了几次,所以速度当然慢点,但是一般能做到24小时。还有就是前面说到的2小时银行钱还不够的情况,如果你选择了24小时到账,他就会把你的包一直往后拖。。。
好了。说完了。这是第一次在知乎上面回答这么多的字。。。
真实的情况还会更加复杂。。。