首页 > 代码库 > 第三方支付架构设计之—自有账户支付
第三方支付架构设计之—自有账户支付
笔者在上一篇blog<<第三方支付架构设计之—帐户体系>>中已经稍微全面的阐述了第三方支付架构设计中的账户体系,在该体系中,其实涉及了各种各样的账户:银行侧账户(包括用户在银行侧的账户:用户借记卡,信用卡,商户在银行侧的清算账户,结算账户等),第三方支付自有账户(跟银行侧账户比较类似,包括用户在第三方支付公司的账户和商户在第三方支付公司的账户)等。
我们知道,第三方支付本身是不直接接触实际资金的,所有的资金流必须走银行系统进行,因此这里涉及到的实际资金流的时候就会把交易请求转接到银行系统进行,
银行侧账户我们大家相对比较了解,本章暂时先放一下,后续介绍快捷支付的时候,我们会进一步详细的讨论。
本章我们重点会放在第三方自有账户体系中,大家知道,第三方支付公司都会建立自己的账户系统,比如国内主流的第三方支付公司:支付宝,财付通等,都有自己的账户体系,具体在产品上表现为:支付宝余额,财付通余额,这是比较官方to c的账户,还有其他二级账户如:理财通余额,积分子账户,微信钱包余额,红包余额等,另外还有to B的商户账户,我们常说的商户接入需要申请商户号就是这个道理。
那么,这里有个问题:第三方支付搭建自有账户体系的必要性和目的是什么?让用户直接使用银行的账户本身不就是可以了吗?这里没有简单的答案,但笔者认为有几个方面的因素是非常重要的:
1,资金沉淀。
通过建立自有账户体系,对用户的资金进行沉淀,这本身是一个比较大的资金池,用户通过充值,支付等把资金转入了第三方支付公司在相关银行的清算账户-客户备付金账户,同时,在自有账户体系记录了一笔虚拟资金的入账,即增加等额的余额。
通过自有账户体系对用户资金进行管控,当然该账户的资金会受到监管,第三方支付公司也能够获取对应资金的利息收入,并且这些资金如何进行盘活目前也是第三方支付公司在不断思考和需要突破的核心问题:如是否可以进行授信支付?贷款?
2,产品粘性需要。
在支付行业,特别是互联网金融,两个东西是非常关键,甚至是致命的:账户和入口。账户沉淀了用户的资金,是交易的基础,所谓交易是解决资金在不同账户之间进行流动的问题,为了有效的控制资金在账户之间转移的原则性和业务规则,在设计上引入了订单,因此,从这个角度看,交易的核心处理对象是订单和账户。只有用户的资金在你的系统里面,用户才会持续的使用你的服务,否则用户的转移成本基本是0。
3,系统闭环需要。
我们知道,在架构设计当中,有一个非常重要的方法论:系统闭环和自愈能力。所谓系统闭环就是说通过划分边界定义各个系统,其中相对可控的是属于内部系统,不可控的或者可控性更弱的属于外部系统,而我们总是希望更多的纳入到可控系统中,这样,我们就能进一步拥有对系统进行持续优化,快速问题定位,治标到治标的系统演进,使得系统更有效的,更低成本的,更高健壮的,更安全的,更可管理的,更高性能的服务我们的业务。
而通过创建自有账户,把用户的资金转移到自有账户体系,后续的支付和交易等均基于自有账户体系进行,就能够达到上面说的目标:系统闭环,提升支付的成功率和性能,改善用户体验。
二,自有账户体系的分类
类似银行侧账户体系,银行侧账户有对私和对公账户,也就是说是个人和企业账户是否分开的,类似的,第三方支付公司的自有账户体系也是分为个人账户和商户号。
个人账户:个人账户主要是面向to Client的账户体系,如财付通余额,用户通过注册财付通后系统分配给用户的一个账户,该账户支持充值,支付,提现,转账等功能。
这里有个特点:第三方支付个人账户的资金是没有利息收入的,一般也没有账户管理费的概念。
商户号: 第三方支付公司面向商户to Business的账户体系,对商户号的管理相对复杂,也是第三方支付公司的收费对象,为了进行收费等账户管理手段的实施,参考银行账户体系(一般包括清算账户和清算账户),商户号其实对应了两个账户,一个是B账户,另外一个是C账户,B账户可以认为是清算账户,用户支付后资金后首先会在B账户记录入账流水(一般无需即余额),通过结算到对应的C账户-扣除平台手续费后入账到C账户,而C账户则是商户可以直接操作的账户,如进行提现到银行卡等。
三,自有账户体系的支付流程
1,用户充值进入自有账户体系:
2,用户提现逃离自有账户体系:
3,C2C转账:
用户直接相互转账到对方的余额。
流程:
1,转出方账户: 扣除资金
2,转入方账户: 增加资金
实现方式上可以考虑通过强事务保障1和2的原子性
4,C2B支付:
最常见的支付;
5,B2C转账:
商户打款,中间账户;
6,C2B2C支付:
淘宝的担保交易模式。
--- 待细化...
第三方支付架构设计之—自有账户支付