如何设计自己开发支付系统统

云收单合作热线
如何设计聚合支付系统,实现原理是什么?
文章来源:四九八网络发布时间: 16:09:23热度:906
移动支付时代,主要巨人正在试图参与,凭借其传统优势,占据一个山谷,从渠道带来各种分散的应用。那么,最直接的定位,是在第三方支付和业务,作为第四方支付将在同一平台上的各种支付方式。&“第四方聚合支付服务”不需要支付许可证,而是通过聚合各种第三方支付平台,合作银行等服务提供商和其他支付工具来支付聚合支付服务。不进行资金清算,但可以根据业务客户的需求进行个性化,形成支付渠道资源相辅相成,具有中立性,灵活性,便利性等优点。简而言之,第三方支付提供资金清算渠道,聚合支付根据支付提供各种衍生服务。&支付是实现业务的唯一途径,一方面,网络业务场景越来越丰富,而传统的企业线逐渐被接受,并尝试利用互联网优化自身的业务模式优化。所以近年来这个市场的在线支付将继续扩大。随着移动支付市场的快速增长,用户习惯逐渐发展,以及第三方支付,银行,消费阶层等纷纷涌现,丰富多彩的需求和复杂性,需要一个不同的支付界面和业务逻辑组合来实现。&中国目前的支付市场形成了三大局面,银联控制卡市场,支付宝和微信支付市场的控制权,除了其他第三方公司难以创造的通用支付工具。因此,第四方聚合支付将面临快速发展的阶段。&那么业务如何转型到第四方呢?&福州四九八科技公司是一家专注于支付产品和服务的软件公司,在行业中处于领先地位和独特优势。公司成立于2011年,在支付领域的软件已经形成了自己的特色,软件产品和服务在100多家国内支付公司。在为客户创造价值的同时,产品本身也是丰富而完美的。公司战略是以软件研发为基础,通过扩展软件服务价值,致力于深度支付软件产品的支付,客户互利双赢是我们的愿景。&2016年悄悄结束,四九八开发了一套最新的支付系统,该系统将市场上最受欢迎的支付技术整合在一起,用户通过公开注册您可以使用所有支付功能,包括无卡支付,手刷POS支付,离线支付和支付支付,无需注册,特别是手刷POS系统,直接通过微信公钥,无需下载APP 。此外,系统支持扩展功能,增加信用卡等界面,实现聚合支付的真实意义。&我们提供支付系统,帮您快速占领市场,垄断地区,明显的优势。创新垄断市场有3-6个月的垄断地位,其间没有其他竞争对手;成为第四方支付公司,打破原有的发展模式和瓶颈,更加自主;互联网思维模式,注重创新业。为了帮助您快速完成对接服务,更灵活,降低维护成本。我们只为您提供技术服务和解决方案的支付,集成支付系统管理平台!如果您想更深入了解支付,第四方支付,请致电,联系我们。我们会给你一个详细的答案,帮助你的企业打开第四方支付过渡的道路。
原创作者:四九八科技。禁止转载,本文链接:
相关文章阅读
您关注的城市合伙人案例
山西合伙人
感言:自从加盟了云收单,让我成为一个支付创业自由人,实现了财富、时间、空间自主支配。相信在四九八科技下,我们会越做越好
大连合伙人
感言:四九八是我们公司的重要合作伙伴,贵公司为传统经济提供一个线上营销和线下支付结合的方案,有四九八,我们有信心,相信明天更美好
云南合伙人
感言:贵公司不断创新和进步,为我们做更多好的产品,为我们谋取更大的利益
|聚合支付的使用场景在这逍遥的编程之路走过的坑越来越多,最后成为一个彻彻底底的大疯子!
个人认为设计系统要因场景因时间而异,一个系统不是一下子就设计的非常完美,在有限的资源情况下一定是先解决当下最核心的问题,并预测/发现未来可能出现的问题,一步步解决最痛点的问题。也就是说系统设计是不断迭代的过程,在迭代中发现问题修复问题;即满足需求的系统是不断迭代优化出来的,不是一下子就架构的非常完美,这是一个持续的过程,个人不相信完美架构银弹。不过如果一开始就有好的基础系统设计,未来可以更容易达到一个比较满意的目标。
在设计系统时应该多思考墨菲定律:
1、任何事都没有表面看起来那么简单;
2、所有的事都会比你预计的时间长;
3、会出错的事总会出错;
4、如果你担心某种情况发生,那么它就更有可能发生。
但是也要思考80/20法则,在系统设计初期将有限的资源用到刀刃上,我们的目标是系统满足现有需求并能支持未来需求。
在持续开发系统过程中前辈们也总结了很多设计原则/经验;而我个人也有幸运用了一些经验/原则。设计原则是系统发展初期或进化过程中根据自己系统特征匹配使用的,如果刚开始不是核心问题请不要复杂化系统设计。
在系统设计初期,是做一个大而全的系统还是进行按功能拆分系统这个需要进行权衡;比如做私塾在线时本身用户量/交易量不会特别大,而且开发就我一个人,资源有限,那就没必要对系统拆分(比如拆分商品、订单等等),就是做一个大而全的系统。而比如设计一个京东秒杀系统,预测到一旦上线量会非常大,而且投入的资源还是蛮充足的,这种情况下就要考虑进行按功能拆分系统。
笔者遇到的拆分主要有如下几种情况:
系统维度:按照系统功能/业务拆分,比如商品系统、购物车、结算、订单系统等等;
功能维度:对一个系统进行功能再拆分,比如优惠券系统,可以拆分为后台券创建系统、领券系统、用券系统等;
读写维度:根据读写比例特征进行拆分,比如商品系统,交易的各个系统都会读取,读大于写,因此就可以进行拆分:商品写服务、商品读服务;读服务可以考虑全量缓存提升性能;比如写的量太大,需要考虑分库分表;还有些聚合读取的场景,如商品详情页,请考虑,将分散在多处的数据聚合到一处存储,提升读的性能和可靠性;
AOP维度:根据访问特征,按照AOP进行拆分,比如,可以分为CDN、页面渲染系统;CDN就是一个AOP系统;
模块维度:比如按照基础或者代码维护特征进行拆分,如基础模块:分库分表、数据库连接池等等;还有如代码维护一般按照三层架构(Web、Service、DAO)进行划分。
首先判断是不是只需要简单的单点远程服务调用即可,如果单机扛不住了需要集群,是不是可以在客户端注册多台机器,使用Nginx进行负载均衡即可解决;如果随着调用方越来越多,就要考虑使用服务自动注册和发现(如Dubbo使用zookeeper);还要考虑服务的分组/隔离,比如有的系统访问量太大导致把整个服务打挂,因此需要为不同的调用方提供不同的服务分组,隔离访问;后期还会随着调用量的增加还要考虑如服务的限流、黑白名单等等。还有一些细节需要注意,如超时时间、重试机制、服务路由(能动态切换不同的分组)、故障补偿等等,这些都会影响到服务的质量。
总结为进程内服务---&单点远程服务---&集群手动注册服务---&自动注册和发现服务----&服务的分组/隔离/路由----&限流/黑白名单。
数据版本化,可回滚
在设计时考虑是否需要进行数据的版本化,数据维护出问题是否需要回滚。比如商品的维护是不是需要版本化。我们目前有一些非常重要的系统需要对数据进行版本化并且支持可回滚。整体设计类似于下图设计:
流程可定义
如果接触过保险业务,会发现不同的保险理赔服务是不一样的,因此我们在系统设计时就设计了一套理赔流程服务。而承保流程和理赔流程是分离,然后进行关联,从而可以复用一些理赔流程并提供个性化的理赔流程。
状态与状态机
在设计交易订单系统时,会存在正向状态(待付款、待发货、已发货、完成)和逆向状态(取消、退款)等,正向状态和逆向状态应该根据自己系统的特征来决定是不是需要分离存储。
另外还有订单状态的变迁,比如待支付、已支付待发货、待收货、完成的迁移;要考虑是不是需要使用状态机来驱动状态的变更和后续流程节点操作。
还要考虑并发状态修改问题,同时对同一个订单只存在一个修改;状态变更的有序问题,状态变更消息的先到后到问题,如支付成功消息和用户取消消息的时间差。
消息队列,用来解耦一些不需要同步调用的服务或者订阅一些自己系统关心的变化;使用消息队列可以实现服务解耦(一对多消费)、异步、缓冲(削峰)等。比如电商系统中的交易订单数据,该数据有非常多的系统关心并订阅,比如订单生产系统、定期送系统、订单风控系统等等;如果订阅者太多,那么订阅单个消息队列就会成为瓶颈,此时需要考虑对消息队列进行多个镜像复制。
大流量缓冲持久化
在电商搞大促时,此时的系统流量会高于正常流量的几倍甚至几十倍,此时就要进行一些特殊的设计来保证系统平稳度过这段时期;而解决的手段很多,一般都是牺牲强一致性,而是保证最终一致性即可。
比如扣减库存,可以考虑这样设计:
直接在Redis中扣减,然后记录下扣减日志,通过Worker去同步到DB。
还有如交易订单系统,可以考虑这样设计:&
首先结算服务调用订单接单服务将订单存储到:订单Redis和订单队列表,订单队列表可以按照需求水平扩展N个表,通过队列缓冲表提升接单的能力;然后通过同步Worker同步到订单中心表;假设用户支付了订单,订单状态机会驱动状态变更,此时可能订单队列表的订单还没有同步到订单中心表,此时状态机就要根据实际情况进行重试。
如果用户查看单个订单详情可以直接从订单Redis就能查到;但如果查询订单列表需要考虑订单Redis和列表的合并。
同步Worker在设计时需要考虑并发处理和重复处理的问题,单机串行扫描处理(每台Worker只扫描其中的一部分表)还是集群处理(Map-Reduce),另外需要考虑是否需要对订单队列表添加相关字段:处理人(哪个应用正在处理)和处理状态(正在处理、已处理、处理失败)。
在使用了消息异步机制的场景下,可能存在消息的丢失,需要考虑进行数据校对和修正来保证数据一致性和完整性。可以通过Worker定期去扫描原始表进行补偿,扫描周期根据实际场景进行定义。
数据异构化
订单分库分表一般按照订单ID进行分,那么如果要查询某个用户的订单列表就需要聚合N个表的数据然后返回,这样会导致订单表的读性能很低;此时需要对订单表进行异构,异构一套用户订单表,按照用户ID进行分库分表;另外还需要考虑对历史订单数据进行归档处理。
还一种异构场景,如商品详情页,因为数据来源太多,影响服务稳定性的因素就太多了,因此最好的办法是把使用到的数据进行异构存储,形成数据闭环;提升服务的性能和稳定性。而有些数据异构的意义不大,如库存价格可以考虑异步加载,或者并发请求合并。
后台系统操作可反馈
在我接触过的很多系统,很多场景都需要反馈,比如修改了某些内容想预览看看最终效果,即想得到一些反馈;还有一些是规则系统,希望看到这些规则在系统数据下的反馈。因此在设计后台系统请考虑效果的可预览、可反馈。
后台系统审批化
对于有些重要的后台功能需要设计审批流,比如调整价格,并对操作进行日志记录从而保证操作可追溯、可审计。
比如结算页需要考虑重复提交,还有如下单扣减库存时需要防止重复扣减库存。解决方案可以考虑防重KEY、防重表。而有些场景如重复支付,如有的电商网站同时支持微信支付、京东支付,渠道不一样是无法防止重复支付的,但是系统设计时需要将支付的每笔情况记录下。比如下图是我在京东使用京东支付和微信支付模拟的重复支付之后进行退款的支付明细:
在交易系统中经常会用到消息,而现有消息中间件基本不保证不发生重复消息的消费;因此需要业务系统考虑在重复消息消费时进行幂等处理。还有如使用第三方支付时,第三方支付会进行异步回调,因此也要考虑做好回调的幂等处理。
我接触的一些系统是完全没有文档、代码没有注释的,完全都是人传人;这将导致后来人接手很痛苦,而且对有些代码是完全不敢改动的,比如有些代码完全是因为业务的一些特殊情况而写的,可以说是没有注释是完全不懂为什么那么做的。因此在一个系统发展的一开始就应该有文档库(设计架构、设计思想、数据字典/业务流程、现有问题)、业务代码/特殊需求有注释。
包括代码和人员。代码主要提交到代码仓库进行管理和备份,代码仓库应该至少具备多版本的功能。人员备份指的是一个系统至少应该有两名开发了解,即假设其中一名离职了也不会出现新人接手之后手忙脚乱事故频发的状况。还有一些是&核心人员&,写着系统的核心代码,被认为是&不可替代的&,这种情况也是尽可能的让他带一名兄弟一起开发核心代码(业务系统),即使离职也还是可以努力下克服困难的。
本文只是整理了一小部分原则,还有很多好的原则无法在一篇文章中全部阐述,比如可回滚(系统出问题时第一时间应该回滚处理,必要情况下摘除并保留一台问题机器进行问题排查)、有损服务(故障功能降级/屏蔽、部分人可用、部分系统可用)、灰度发布(功能只对部分人开发,从而保证假设出问题只是影响一小部分人)等等,每一个原则都可以写一篇文章好好阐述。
前端交易型系统本身是非常复杂的,以上原则只是笔者在实际开发时遇到过并使用的一些原则,而还有很多好的原则和经验是可以借鉴的,如果您有好的想法欢迎整理成文章分享给更多的人。另外笔者对支付/结算、供应链、库房生产等部分也不熟悉,只进行了前端交易系统的一些原则的总结,也希望更多人加入进来来完善设计原则库。
阅读(...) 评论()摘要:在经济全球化、互联网普及的市场下,国内支付行业也如雨后春笋般迅猛发展。第三方支付也逐渐兴起,从渠道到应用门类繁多,支付市场百花齐放。支付市场碎片化和多元化的局面给新模式&&聚合支付的生存和发展预留了空间。本文主要采用理论研究法和调查研究法,研究中国聚合支付云服务的设计与开发。商业模式是概念基础,商业生态和价值理论是模式设计当中的辅助工具。
关键词:聚合网络支付、软件开发
引言:本文通过对已有支付模式的研究理论的总结,总结出一套综合性聚合支付的方式。淡化传统商业模式打价格战的市场定位,强化服务性的属性,提高民生质量。致力于彻底改变移动支付的接入方式,让每一个App都能轻松接入支付。从安全可靠的聚合支付平台到简单无忧的聚合支付云服务,从支付接入、交易处理到业务运营&&希望本次研究对行业有指导意义。
王永刚(2010)认为,物联网要解决人与物、物与物之间的通信问题,涉及面非常广,单靠运营商一类个体是无法实现的。电信运营商要同以往的平台提供商、内容提供商、终端厂商合作,更要面对因无所不在特性产生的客户生态小圈子。这就要求运营商同行业的微型生态个体互动起来,准确把握其服务需求。
现在普及的支付方式是支付宝、微信、刷卡、现金等。虽为消费者的支付提供了便捷,但多种支付方式导致消费者的手机内存减小、部分支付软件与手机不兼容,商户收银处需必备微信、支付宝等收款二维码、预备现金找零&&而聚合支付云服务则类似于百度云,可以聚合多种支付软件,提供一个便捷的平台就可以完成收付款等服务。只不过,聚合支付更胜于百度云的服务模式,按业务分类,它不仅可以线上支付,线下实体店也可以用聚合支付收单。能够根据商户的需求提供精细化服务,形成资源优势互补,具有中立性、灵活性、便捷性等特点。
聚合支付是以联盟模式,通过提供平台吸引其他企业加盟,通过大量快速的现金流来维持企业运作的云服务软件。需要随时随地的网络覆盖和接入性,信息共享和互动以及远程操作都要达到较高的水平,同时信息的安全机制和权限管理需要更高层次的监管和技术保障。利用云计算等技术及时对海量信息进行处理,真正达到了人与人的沟通和物与物的沟通。信息处理能力更强大,人类与周围世界的相处更为智慧。
从需求出发,聚合支付平台选用的是混合形式,也就是C/S,B/S结合的形式,它又分成了三个子系统,包括一个平台管理子系统,还有一个平台接口子系统,以及一个客户端子系统。
平台管理子系统有后台管理的作用,能够分配来自平台接口子系统使用与产生出的数据,包括的模块有手机客户端管理模块和订单管理与查询管理、财务管理,还有SP商管理和内容提供商管理,具体实现选用的是B/S形式。信息管理方面,如网络状况、使用聚合支付平台的地域、使用的时间和使用的手机型号等,这些都属于手机客户端管理模块;在管理每个订单信息的查询方面,则是订单管理模块;管理支付时段查询与统计方面,还有管理各种支付用户、行为、方式,这些都是查询管理模块;管理上游还有管理下游账单结算和支付流水的是财务管理模块;对于SP计费信息和SP商信息等管理方面,属于SP商管理模块;管理如应用商品信息和应用密钥与应用工D以及CP的账号等,这些则是内容提供商管理模块。
平台接口子系统有选用了B/S形式的不同支付数据同步接口,以及有选用到C/S形式的不同支付方式平台接口,具体涉及到了充值卡支付接口与财付通支付接口,还有支付宝支付接口和银联支付接口,也包括SP支付接口和工mt初始化接口。而这里涉及到的所有接口协议都要依据HTTP协议,应用工D数据需加到HTTP自定义头里面,选用私钥加密到了这个Post的数据上,这样可以使支付过程有了安全性方面的保障。应用工D出现在服务器上,就可以查找到相关的私钥,同时也做到了解密的工作,之后又能加密到服务器返回来的相关数据上面。支付大厅上只出现这两种情况,包括了充值卡计费用户与SP计费用户的付款历程,而官方APP付款就可以做到剩下的支付模式,像手机支付宝客户端那样操作了,这样就有了安全性的保证,很大程度的保持了用户支付的习惯。
客户端管理子系统是可用在手机上的标准化聚合支付平台,静态库用于IOS手机平台上,Jar包则支持的是Android手机平台。支付接口与收款接口,它们则会由客户端管理子系统提供出来。而聚合多种计费方式则在支付大厅界面上,可通过支付接口来完成,这里包括充值卡计费与财付通计费,还有支付宝计费和银联计费以及SP计费。平台接口子系统可与这些计费方式进行互动,这样可聚合到的所有手机支付方式,都是因为离不开这个统一的支付接口,也就把扩展性和方便性都加大了。
接口管理子系统的数据库属于主数据库,而平台管理子系统间操作的数据库则是备份数据库,这样平台性能方面就有所提升了,同时可对读/写分离得以实现,又可在数据库上做热备份。
未来展望:在本文研究的基础上,未来可以通过时刻把握聚合支付的发展情况和态势来延伸本研究的工作。将各类数据对于支付模式作用的着陆点进行研究,最终形成一个定量分析的作用模型,从而更全面直观的体现聚合支付软件的发展轨迹,并在实际应用当中进行验证。
结论:聚合支付云服务可以通过线上聚合支付软件和线下个体经营商户利用聚合支付收银来实现。网络客户端支付平台可以通过客户端子系统、平台接口子系统和平台管理子系统这三个子系统来实现运作。在手机智能普及和经济迅速发展的21世纪,聚合支付将成为未来市场首付款的主要方法。
参考文献:叶纯青,聚合支付:支付服务的拓展,Vision|热点透析,2017年&第1期
孔晓波,通信产业商业模式的生态学研究,北京北京邮电大学博士论文,2009
刘兆元,物联网业务关键技术与模式探讨,广东通信技术,
唐亦飞,胡绪华,吕魁.基于网络融合的移动增值业务商业模式分类及发展趋势[J].企业经济,2010, (2): 103-106
万江平,朱时庆,华丽水.我国软件业商业生态系统的若干思考[[J].科技管理研究,0-132
免责声明:[
金融之家-JRZJ.COM刊发此文目的在于传递更多信息,文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担
责任编辑:jrbd
发表回复 金豆+2
|还可以输入 500 字
金融之家客户端
点击或扫描下载
金融之家客户端下载支付平台的账户体系结构是怎么设计的_百度知道
支付平台的账户体系结构是怎么设计的
我有更好的答案
你好支付平台会在银行设立一个或多个账户,用于归集客户或商户的备付金(粗俗地可以理解为,客户/商户充值、支付、交易等待结算的资金)。以普通用户在第三方支付平台给自己虚拟账户在线充值为例:1)、用户在第三方支付平台执行充值操作,跳转到银行网关进行支付。2)、用户支付成功后,银行会实时从用户银行账户上执行扣款操作。3)、银行网关通知支付平台用户支付成功(成功扣款)。4)、支付平台在自己账户体系中给对应用户虚拟账户增加对应资金。5)、银行和支付平台然后按照约定的结算周期(例如T+1)进行对账、清结算等操作后,将用户充值的资金结算给支付平台在银行设立的账户。
采纳率:59%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
体系结构的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Ping++ | 移动应用支付接口
页面不存在
可能是链接地址有误,页面已经被移除或隐藏。
微信公众号

我要回帖

更多关于 自己开发支付系统 的文章

 

随机推荐