跟银行合作开发过一个支付系统,整理下架构。
整体包括:进件接口-交易接口-清算系统-后台系统。
首先,这个系统在这里起到的主要是“中间商”的作用,它的上游是支付宝、微信支付和京东支付等第三方支付平台,它的下游是渠道商和商户,商户包括外面的普通商户(这种称为线下支付)和 app支付(线上支付),渠道商就是帮银行去拓展商户的“中间商”。这两个“中间商”为啥乐意做这事,相信大家都懂,不是每家公司都是瓜子网。
前期,银行在支付宝、微信支付等平台注册服务商账号,这种账号和一般公司去注册的账号不同点在于他可以通过api的方式增加商户,比较灵活,可以这样理解,微信支付开了一个权限较高的账号,让你可以在微信支付平台添加商户,这个商户每天的流水第二天统一打到银行提供给微信支付的对公账户中。
注册完服务商账号,渠道商开始提供商户信息,这时候,需要调用进件接口,将商户信息传输到微信支付提供的接口,进件成功微信支付返回该商户的商户号,后期发起交易要使用到这个商户号。
商户号拿到之后,我们就可以调用微信支付提供的商户号,发起支付(目前有扫码支付,刷卡支付,公众号支付、app支付和H5支付),支付成功后微信回调我们接口,我们写入交易记录。(用于第二天的对账-核对三方账单和数据库记录账单)
第二天,9点微信支付提供服务商账号的账单,清算系统下载账单,开始进行对账。对账异常一般包括多帐(微信提供的三方账单中没有记录,数据库中有记录)、少帐(微信提供的三方账单中有记录,数据库中没有记录)和错账(微信提供的三方账号和数据库提供的三方账号,交易金额不相等。)。单条交易记录对账完后需要汇总,看汇总总金额是否和服务商对公账号单天收到的金额一致。金额一致,则开始调取银行的划付接口。所有的划付完毕之后,意味着昨天的所有交易流程完毕。
后台系统提供给银行、渠道商和商户查看资料和每天的交易结算等信息。