[发明专利]高并发通用支付方法有效
申请号: | 201410262934.2 | 申请日: | 2014-06-13 |
公开(公告)号: | CN104050564B | 公开(公告)日: | 2017-11-14 |
发明(设计)人: | 封维波;杨超 | 申请(专利权)人: | 中国民航信息网络股份有限公司 |
主分类号: | G06F17/00 | 分类号: | G06F17/00 |
代理公司: | 北京瑞思知识产权代理事务所(普通合伙)11341 | 代理人: | 李涛,袁红红 |
地址: | 100010 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 通用 支付 方法 | ||
1.一种高并发通用支付方法,其特征在于,所述方法包括:
步骤1:当系统入口服务接收到同步请求时,生成用于保存所述同步请求的结构体TransInfo对象,并向所述TransInfo对象分配序列号,然后将所述序列号保存于TransInfo对象中;
步骤2:将所述TransInfo对象放入TransInfo处理队列;
步骤3:将所述TransInfo对象的序列号作为参数调用tpforward系统入口服务,从而进入系统入口服务的请求队列,等待处理,并将所述TransInfo对象的序列号保存在所述tpforward的参数中;
步骤4:构建发送线程以遍历所述TransInfo处理队列,并根据所述TransInfo处理队列中的TransInfo对象的状态进行处理;
步骤5:构建接收线程以遍历所述TransInfo处理队列,并将外部系统服务返回的数据放入所述TransInfo处理队列中对应的TransInfo对象中,并相应修改所述TransInfo对象的状态为已接收;
步骤6:系统入口服务调用自身的tpforward请求到达时,提取所述tpforward请求中保存的TransInfo对象的序列号,从TransInfo队列中找到对应的TransInfo对象,如果所述对应的TransInfo对象的状态为已接收,则将接收到的结果返回请求tpreturn给外部系统,并将所述对应的TransInfo对象的状态更新为无效,结束一次外部请求过程。
2.根据权利要求1所述的高并发通用支付方法,其特征在于,所述步骤4包括:删除TransInfo处理队列中状态为无效的TransInfo对象;发送TransInfo处理队列中状态为发送前的TransInfo对象。
3.根据权利要求2所述的高并发通用支付方法,其特征在于,当TransInfo处理队列为空时,所述发送线程会进行阻塞以等待新的TransInfo对象被放入所述TransInfo处理队列中。
4.根据权利要求1所述的高并发通用支付方法,其特征在于,所述方法还包括:将外部链路抽象为类Link,提供统一的调用接口,BSP验证或者UATP的验证的具体实现都从Link类派生,发送线程和接收线程中的发送和接收处理,都只依赖与Link接口,从而不用关心链路的具体实现。
5.根据权利要求4所述的高并发通用支付方法,其特征在于,所述方法还包括:将每种支付方式的业务处理代码进行封装,包括接收数据的解析,发送报文的组装,数据库的查询更新操作;不同的支付方式有不同的处理要求,通过将不同的处理过程封装为独立的类,以统一的接口插入支付引擎,实现支付业务处理的可扩展性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国民航信息网络股份有限公司,未经中国民航信息网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410262934.2/1.html,转载请声明来源钻瓜专利网。