破除三方支付之痛——用最传统模式打造最稳定金流支付
本文旨在解决当下群魔乱舞的菠菜支付行业!本文重点的关键字稳,会从背景到产品到技术实现给大家讲解如果设计一套稳的支付系统。
BC支付背景
前两天听一个朋友介绍他们平台已经接了200多个三方支付平台了。200多个,一天接一个都要大半年了。当下BC支付非常不稳定,费率漫天要价,平台隔三差五维护。国家审查也越来越严,时不时听到某某平台跑路。
当然也有个别后台很硬的三方平台,有ZG政府的后台撑着,相对会稳定很多。但是其费率高的吓人,微信支付宝都快到5%了,你想进去还需要通过各种关系,设置了很高的门槛,小平台就更别想了。
产品需求分析当前三方支付有这么多不稳定现象呢?原因无非就以下两点:
1,国家监管日趋严格。在国家的严打下,平台时不时的维护,去应付上游的政策。
2,二清企业的存在。资金的转存导致了平台的跑路,到处都是骗钱的平台。
于是,金流系统应运而生。我们就走网银通道,国家自己的银行系统的变数是非常小的,我们不做二清,三清,直接P2P交易。
圈子里的很多技术人员应该都懂敏捷开发,对,就用这个思路给大家展开下吧!以上问题用一个最简单的scrum的product backlog进行展示就一目了然了。这也是产品经理要解决当前支付行业,设计的简要需求。如下:
产品设计与实现
这部分是项目经理或者系统架构师的工作了。scrum的blue print的拆解就不再这里展示了,太多太多的细节点了。以下就简述大致实现原理,以及在开发过程中需要解决的核心难点进行分解。
原理很简单,完全模拟个人网银的转账和查账操作。
1、插入银行U盾,读取U盾数据。
在该金流系统中,由于服务器和U盾是分离的(本地PC网银的U盾是直接插在电脑上的),所以需要一个安全可靠的USB重定向设备。国内这种ARM系统的内置windows系统的硬件盒子很多,提供USB重定向功能,可以在服务器可以通过互联网读取到你本地电脑上的插入的银行U盾。
至于USB重定向原理,和虚拟化通道有关,中间的协议很多,hyperV通过RDP协议实现,XenServer用的是ICA协议,对开发硬件有兴趣的可以自己去研究。
2、登陆网银。
在金流系统中,这是要克服的第二个技术难题。这里是通过硬件USB重定向盒子,在插入银行U盾后。通过金流系统的商户管理平台,输入银行卡账号密码后,可以激活。
当然更安全的方式当然最好是和厂家合作进行加密定制化硬件USB重定向盒子。传输协议进行加密,对自己的金流对接进行专门的认证(也就是定制后的盒子,只能用于你开发的金流平台)。
在激活之后,盒子一直在网络中,主要保证服务器端的虚拟机不宕机,就可以一直保持登陆状态。(金流系统会定期自动刷新网银操作页面,以保持会话session没有过期)。
3、鼠标键盘操作,进行转账和查询对账操作。
模拟鼠标键盘操作,再用网络爬虫和日志分析技术进行转账和查询对账操作。
很多开发语言都有模拟鼠标键盘操作的Lib库。如C#的MouseKeyboardLibrary,下载.net framework就自带的。其他开发语言的就不例举了,都有。
至于用网络爬虫抓入页面上的账单流水记录,这个可用爬虫类库也很多,典型的python的scrapy框架多。选型方面,google一搜一大推。
最后日志分析这块,这块要根据不同银行的网银页面显示数据,用常见的文本分析就行了。
另外,这里还有一个出账时候技术实现难点,有些网银U盾,出款是要按盾上面OK键。这里实现方式也有几种,这里介绍其中一种,往银行U盾设备上里面加入晶片,当收到需要确认的数字信号时,通过晶片自动确认。
当然,在整理系统中,还有很多可靠性和性能上的设计。对外接客户开放的金流系统,还要解决虚拟机租户资源隔离问题。在用户高并发,短时间相同数额订单容错性,多银行卡的收款调度选择,都是一些技术需要解决的问题。这里就不一一展开了。
- 上一篇:意大利在线博菠菜业抵消零售疲弱
- 下一篇:菲律宾网络菠菜牌照演化史