[发明专利]高并发通用支付方法有效
申请号: | 201410262934.2 | 申请日: | 2014-06-13 |
公开(公告)号: | CN104050564B | 公开(公告)日: | 2017-11-14 |
发明(设计)人: | 封维波;杨超 | 申请(专利权)人: | 中国民航信息网络股份有限公司 |
主分类号: | G06F17/00 | 分类号: | G06F17/00 |
代理公司: | 北京瑞思知识产权代理事务所(普通合伙)11341 | 代理人: | 李涛,袁红红 |
地址: | 100010 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 通用 支付 方法 | ||
技术领域
本发明涉及电子支付技术领域,尤其涉及一种高并发通用支付方法。
背景技术
随着电子客票的推广和普及,航空公司为适应市场需求的变化,也迫切希望其购票款可直接通过信用卡完成支付。主机CCV指令是一个信用卡验证指令,现在系统中绝大多数的验证操作都是通过SITA的CCA系统(信用卡授权系统)进行的,如图1所示。
CCV指令直接调用CCA,将逐步过渡到调用航信自己的开放端系统实现与各信用卡授权系统、银行及其他第三方支付平台的直连,这样可以大大节省CCA系统使用费用,并收取服务费。
在卡支付验证后台系统领域,一般采用的都是基于TUXEDO交易中间件的支付验证架构,为了满足外部系统同步调用的需求,常用的架构设计中往往存在低并发、可扩展性差、通用性差的缺点。
缺点一:低并发:外部系统调用支付验证服务时采用的是Tuxedo同步请求,每一个同步请求就会占用一个Tuxedo验证服务,通常验证服务又会调用其它的验证系统进行验证,所以一次验证通常耗费的时间可能会比较长。如果系统完全依赖于增加TUXEDO验证服务的个数来提高并发处理能力,则系统的并发处理能力将严重依赖于Tuxedo验证服务的个数。如果验证服务个数小于并发请求个数时,将导致请求堆积在处理队列中,形成一个性能的拐点,单个请求的处理时间将会在这个拐点陡然增加。
缺点二:可扩展性差:支付系统根据卡的类型不同,会调用不同的外部系统进行验证,调用外部系统的方法根据实际情况也会不同,可能是Socket也可能是MQ。因此扩展性差会表现为以下两点,一是在不影响现有服务的情况下,不能方便地接入其他服务来增强现有系统的功能;二是不能方便的扩展不同的链路,不能提供一个统一的链路管理来提供不同的链接方式,他们的链接往往是针对一个外部交易平台重新编写程序来提供一个服务来进行处理,可扩展性较差。
缺点三:通用性差:一般的支付系统都是自成体系,往往都只是针对一家银行或者信用卡授权中心进行独立处理,系统的通用性较差,增加新的卡类型往往需要重新编写所有代码,这会大大增加人力成本。
发明内容
有鉴于此,本发明提供了一种高并发通用支付方法,能够通过同时处理多个交易请求实现高并发;并通过对与外部交易系统的交互采用统一的链路管理的方式实现了高扩展性。
本发明提供的一种高并发通用支付方法,包括:
步骤1:当系统入口服务接收到同步请求时,生成用于保存所述同步请求的结构体TransInfo对象,并向所述TransInfo对象分配序列号,然后将所述序列号保存于TransInfo对象中;
步骤2:将所述TransInfo对象放入TransInfo处理队列;
步骤3:将所述TransInfo对象tpforward服务,从而进入服务的请求队列,等待处理,并将所述TransInfo对象的序列号保存在所述tpforward的参数中。
所述方法还包括:构建发送线程以遍历所述TransInfo处理队列,并根据所述TransInfo处理队列中的TransInfo对象的状态进行处理,包括:删除TransInfo处理队列中状态为无效的TransInfo对象;发送TransInfo处理队列中状态为发送前的TransInfo对象。
当TransInfo处理队列为空时,所述发送线程会进行阻塞以等待新的TransInfo对象被放入所述TransInfo处理队列中。
所述方法还包括:构建接收线程以遍历所述TransInfo处理队列,并将服务返回的数据放入所述TransInfo处理队列中对应的TransInfo对象中,并相应修改所述TransInfo对象的状态为已接收。
所述方法还包括:系统入口服务调用自身的tpforward请求到达时,提取所述tpforward请求中保存的TransInfo对象的序列号,从TransInfo队列中找到对已的TransInfo对象,如果所述对已的TransInfo对象的状态为已接收,则将接收到的结果tpreturn(返回请求)给外部系统,并将所述对已的TransInfo对象的状态更新为无效,结束一次外部请求过程;其中,所述tpforward请求即tpforward服务的TransInfo对象所保存的同步请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国民航信息网络股份有限公司,未经中国民航信息网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410262934.2/2.html,转载请声明来源钻瓜专利网。