仅以我所见的第三方支付公司为例,讲一下核心的支付业务与流程。
核心的支付业务:
一、组织架构:
1、网关组:支付入口,接收所有的支付请求,显示对应商家的支付类型与通道。
2、后台组:负责商家系统与总后台系统。商家系统负责商家的相应设置,总后台系统负责商家的审核,支付、出款、对账业务。
3、接口组:负责对接银行,第三方支付公司,在每个银行都有一个备付金账号,收支都在备付金账号中体现。
4、核心业务组:整个业务的系统架构,清算,结算,补漏等业务。
二、业务解析:
1、扣款:支付的时候,从买家的卡里扣款到备付金账号中。(组装参数,调用对应通道的接口,进行扣款操作。)
2、出款:卖家收到买家的购物款,从备付金账号中将款项汇入卖家的卡中。(一般定时出款,例如定时5分钟,扫描订单表,将已经支付成功,但是未出款的订单,组装参数调用对应银行的接口进行出款操作,也可以在总后台的订单管理处,设置手动出款。)
3、清算:根据支付类型,统计商家对应的订单。(一天中,一个商家,一个支付类型,仅有一条统计记录)
4、结算:根据清算的结果,进行结算。(清算与结算的目的:跟银行算账,在备付金中应该收款多少或者应该出款多少。)
5、对账:将订单库中已经支付完成的订单与银行的订单进行对账,找出差异项。(自己的订单,从总后台订单管理中导出。银行的订单,从银联网站中到处。)
三、支付通道
1、支付类型:b2c,b2b,快捷,点卡,支付宝,微信,QQ钱包。。。。。。
2、支付网关:上接支付类型,下含支付通道。
3、支付通道:对应具体的银行。
协作关系:商家配置支付类型,支付类型包含支付网关,支付网购包含支付通道。
为何这样架构?支付网关类似于中间表的作用,了解一下。
四、其他业务解析:
1、补漏:扣款成功,出款失败的订单,需要用定时任务进行补扣,将参数重新组装调用银行相应的接口进行扣款。
2、风控:黑白名单、设定单日单笔交易限额的控制。
五、其它:
1、RSA加解密,HTTPS,专线。
2、性能:异步处理非实时业务,比如支付成功后,需要发送支付成功通知(邮箱通知,短信通知,HTTP通知),此时可以采用异步的方式,将需要发送的内容放入MQ队列中,在写一个项目读取MQ的信息进行通知的发送。
3、批量支付(拆分订单变为父子单),洗钱(备付金一进一出,就白了)……了解一下。