CN111222862A - 数据处理方法及***、介质和计算机*** - Google Patents
数据处理方法及***、介质和计算机*** Download PDFInfo
- Publication number
- CN111222862A CN111222862A CN201811430290.8A CN201811430290A CN111222862A CN 111222862 A CN111222862 A CN 111222862A CN 201811430290 A CN201811430290 A CN 201811430290A CN 111222862 A CN111222862 A CN 111222862A
- Authority
- CN
- China
- Prior art keywords
- payment
- message
- message queue
- result
- service system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 18
- 238000012545 processing Methods 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 238000012423 maintenance Methods 0.000 description 11
- 230000033772 system development Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000003999 initiator Substances 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
- G06Q20/0855—Payment architectures involving remote charge determination or related payment systems involving a third party
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种数据处理方法,包括:针对支付操作,生成对应的支付消息;将支付消息传输给第一消息队列,使得支付平台能够从第一消息队列获取支付消息,并依据支付消息,生成对应的支付请求,进而将支付请求转发给第三方支付渠道,使得第三方支付渠道能够响应于支付请求,生成针对支付操作的支付结果,并将支付结果同步给支付平台,使得支付平台能够将支付结果对应的消息体传输给第二消息队列;以及从第二消息队列中获取关于支付结果的消息体,完成本次支付操作。
Description
技术领域
本公开涉及互联网技术领域,更具体地,涉及一种数据处理方法及***、一种计算机可读存储介质和一种计算机***。
背景技术
目前,大部分无支付牌照的公司在提供支付结算服务时,一般都会选择接入有支付牌照的第三方支付渠道公司或部分银行来完成支付相关业务,如签约、解约、支付、撤销、退款、对账等日常业务操作,其中使用频率最高的支付操作,又可分为快捷支付、网银支付、协议支付(代收或者代付)、平台支付(主要使用微信、支付宝等第三方支付平台来完成支付)等。
并且,从实际的成本、安全、性能、可用性等几方面综合考虑,很多公司在搭建支付结算平台时一般会选择接入一家或几家第三方支付渠道公司或部分银行来支持日常支付业务场景的闭环。
其中,业务场景中常用的支付操作调用环节如下:
(1)业务***请求调用支付结算平台的Rest服务接口;
(2)支付结算平台在接收到调用Rest服务接口的请求后,先调用防重复支付操作服务进行验证;
(3)支付结算平台再分别就各类支付操作拼接出不同的报文,然后构造对应的https支付请求,并发送到对应的第三方支付渠道公司或部分银行,同时将https支付请求保存到DB;
(4)支付结算平台接收来自第三方支付渠道公司或部分银行的支付操作结果,实现支付状态同步。
然而,在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:现有的支付***扩展能力不足,如果有业务***接入支付结算平台时,需要针对新接入的业务***定制开发对应的接入Rest服务接口,和与之对应的支付响应结果Rest服务接口,因而必然会增加***开发、测试、运维的成本和复杂度。
发明内容
有鉴于此,本公开提供了一种能够提高***扩展能力的数据处理方法和能够实现该方法的数据处理***。
本公开的一个方面提供了一种数据处理方法,包括:针对支付操作,生成对应的支付消息;将上述支付消息传输给第一消息队列,使得支付平台能够从上述第一消息队列获取上述支付消息,并依据上述支付消息,生成对应的支付请求,进而将上述支付请求转发给第三方支付渠道,使得上述第三方支付渠道能够响应于上述支付请求,生成针对上述支付操作的支付结果,并将上述支付结果同步给上述支付平台,使得上述支付平台能够将上述支付结果对应的消息体传输给第二消息队列;以及从上述第二消息队列中获取关于上述支付结果的消息体,完成本次支付操作。
根据本公开的实施例,上述将上述支付消息传输给第一消息队列,包括:将上述支付消息发送给消息队列集群中的交换机,使得上述交换机能够按照预定方式将上述支付消息发送给上述第一消息队列。
根据本公开的实施例,上述预定方式包括:轮询方式,或者广播方式,或者权重配比。
根据本公开的实施例,上述针对支付操作,生成对应的支付消息,包括:针对上述支付操作,生成对应的携带有业务***标识的支付消息,其中,上述第三方支付渠道在响应于上述支付请求时,生成的上述支付结果对应的消息体中也携带有上述业务***标识。
本公开的另一个方面提供了另一种数据处理方法,包括:从第一消息队列或者消息队列集群获取来自业务***的针对支付操作的支付消息;依据上述支付消息,生成对应的支付请求;将上述支付请求转发给第三方支付渠道,使得上述第三方支付渠道能够响应于上述支付请求,生成针对上述支付操作的支付结果;以及获取上述支付结果并将上述支付结果对应的消息体传输给第二消息队列或上述消息队列集群,使得上述业务***能够从上述第二消息队列或上述消息队列集群获取关于上述支付结果的消息体,完成本次支付操作。
根据本公开的实施例,上述将上述支付结果对应的消息体传输给上述消息队列集群,包括:将上述支付结果对应的消息体传输给上述消息队列集群中与上述业务***绑定的消息队列。
本公开的另一个方面提供了一种数据处理***,包括:第一生成模块,用于针对支付操作,生成对应的支付消息;第一传输模块,用于将上述支付消息传输给第一消息队列,使得支付平台能够从上述第一消息队列获取上述支付消息,并依据上述支付消息,生成对应的支付请求,进而将上述支付请求转发给第三方支付渠道,使得上述第三方支付渠道能够响应于上述支付请求,生成针对上述支付操作的支付结果,并将上述支付结果同步给上述支付平台,使得上述支付平台能够将上述支付结果对应的消息体传输给第二消息队列;以及第一获取模块,用于从上述第二消息队列中获取关于上述支付结果的消息体,完成本次支付操作。
根据本公开的实施例,上述第一传输模块还用于:将上述支付消息发送给消息队列集群中的交换机,使得上述交换机能够按照预定方式将上述支付消息发送给上述第一消息队列。
根据本公开的实施例,上述预定方式包括:轮询方式,或者广播方式,或者权重配比。
根据本公开的实施例,上述第一生成模块还用于:针对上述支付操作,生成对应的携带有业务***标识的支付消息,其中,上述第三方支付渠道在响应于上述支付请求时,生成的上述支付结果对应的消息体中也携带有上述业务***标识。
本公开的另一个方面提供了另一种数据处理***,包括:第二获取模块,用于从第一消息队列或者消息队列集群获取来自业务***的针对支付操作的支付消息;第二生成模块,用于依据上述支付消息,生成对应的支付请求;第二传输模块,用于将上述支付请求转发给第三方支付渠道,使得上述第三方支付渠道能够响应于上述支付请求,生成针对上述支付操作的支付结果;以及第三传输模块,用于获取上述支付结果并将上述支付结果对应的消息体传输给第二消息队列或上述消息队列集群,使得上述业务***能够从上述第二消息队列或上述消息队列集群获取关于上述支付结果的消息体,完成本次支付操作。
根据本公开的实施例,上述第二传输模块还用于:将上述支付结果对应的消息体传输给上述消息队列集群中与上述业务***绑定的消息队列。
本公开的另一方面提供了一种计算机***,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,因为采用了消息队列或消息队列集群连接业务***和支付平台的技术手段,所以至少部分地克服了相关技术中由于业务***直接对接支付平台,支付平台需要针对每个业务***开发专门的服务接口,导致***扩展能力不足,且增加了***开发、测试、运维的成本和复杂度的技术问题,进而能够达到提高***扩展能力的目的,并且还能够实现减少***开发、测试、运维的成本和复杂度的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了可以应用本公开实施例的数据处理方法及***的示例性***架构;
图2示意性示出了根据本公开实施例的数据处理方法的流程图;
图3示意性示出了根据本公开实施例的请求路由写入的示意图;
图4示意性示出了根据本公开实施例的响应路由动态回写的示意图;
图5示意性示出了根据本公开另一实施例的数据处理方法的流程图;
图6示意性示出了根据本公开实施例的数据处理***的框图;
图7示意性示出了根据本公开另一实施例的数据处理***的框图;以及
图8示意性示出了根据本公开实施例的适于实现数据处理方法的计算机***的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
本公开的实施例提供了一种能够提高***扩展能力的数据处理方法和能够实现该方法的数据处理***。该方法包括针对支付操作,生成对应的支付消息;将支付消息传输给第一消息队列,使得支付平台能够从第一消息队列获取支付消息,并依据支付消息,生成对应的支付请求,进而将支付请求转发给第三方支付渠道,使得第三方支付渠道能够响应于支付请求,生成针对支付操作的支付结果,并将支付结果同步给支付平台,使得支付平台能够将支付结果对应的消息体传输给第二消息队列;以及从第二消息队列中获取关于支付结果的消息体,完成本次支付操作。
图1示意性示出了可以应用本公开实施例的数据处理方法及***的示例性***架构。
如图1所示,该***架构包括业务***群组、消息队列集群(即MQ队列集群)、支付平台(又称支付结算服务平台)和第三方支付渠道(包括具有支付拍照的第三方支付渠道公司或部分银行)。
其中,业务***群组包括多个业务***,例如图1示出了业务***1~业务***3三个业务***。这些业务***既可以是群组中已有的业务***,也可以是新接入群组的业务***。对于每个业务***而言,在进行支付业务时,每出现一次支付操作,都会生成一对应的消息,业务***将生成的消息发送到MQ队列集群,MQ队列集群再通过动态路由机制将消息分发给集群节点如图1示出的节点1、节点2、节点3中的消息队列。
需要说明的是,该***架构中的MQ队列集群,也可以仅包括一个业务***接入消息队列。这样,业务***群组中所有业务***产生的消息都被发送到该消息队列中。
支付平台监听MQ队列集群中的消息队列如队列1、队列2、队列3,获取业务***对应支付操作产生的消息,并生成对应的支付请求报文(又简称支付请求)。为了防止重复支付,支付平台也可以先调用防重复支付操作服务进行验证,验证通过后再按第三方支付渠道约定的SDK规范构建支付请求报文。
生成支付请求报文报文后,支付平台再根据SDK规范规定的动态路由机制调用对应的第三方支付渠道进行真正意义上的支付操作,如转账、付款等。此外,支付平台还接收第三方支付渠道反馈的支付操作结果,实现支付状态同步。
进一步,支付平台同步支付状态的同时,还根据支付“动态路由响应机制”,动态地将支付操作结果消息路由写入相应“***业务”(即支付请求操作发起方)对应的支付请求响应消息队列。相应的,每个“业务***”都会监听与自身绑定的支付请求响应消息队列,如果发现有消息写入,立即触发响应,并根据响应结果进行对应业务处理,从而完成每次支付操作。
需要说明的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
并且,应该理解,图1中的业务***、MQ节点、队列和第三方支付渠道的数目仅仅是示意性的。根据实现需要,可以具有任意数目的业务***、MQ节点、队列和第三方支付渠道。
图2示意性示出了根据本公开实施例的数据处理方法的流程图。
本公开实施例提供了一种从业务***侧实现支付操作的方法。如图2所示,该方法包括操作S210~S230,其中:
在操作S210,针对支付操作,生成对应的支付消息。
结合图1所示的***架构,其中,每个业务***每出现一次支付操作,都会生成与该次支付操作对应的支付消息。
在操作S220,将支付消息传输给第一消息队列,使得支付平台能够从第一消息队列获取支付消息,并依据支付消息,生成对应的支付请求,进而将支付请求转发给第三方支付渠道,使得第三方支付渠道能够响应于支付请求,生成针对支付操作的支付结果,并将支付结果同步给支付平台,使得支付平台能够将支付结果对应的消息体传输给第二消息队列。
需要说明的是,在本公开实施例中,限定了MQ队列集群仅包括一个支付请求接入消息队列即第一消息队列的情况,这样,业务***群组中所有业务***产生的支付消息都会进入该消息队列。
在本公开实施例中,支付平台可以实时监听第一消息队列,并依次根据监听获取的支付消息生成对应的支付请求报文,同时将生成的支付请求报文按照预先制定的动态路由机制,分配给处理能力符合一定要求的第三方支付渠道,再由第三方支付渠道响应于支付请求报文,实现真正的支付操作,并生成对应的支付请求结果(简称支付结果),并将支付结果同步给支付平台,进而支付平台再将支付结果对应的消息体传输给第二消息队列。
其中,在本公开实施例中,第二消息队列可以包括一个,也可以包括多个。在包括一个时,所有的支付结果消息都进入该消息队列,此时需要在消息体中携带业务***标识,以便业务***能够识别并获取属于自身***的消息;在包括多个时,属于不同业务***的支付结果消息需要进入与对应的业务***绑定的消息队列。
在操作S230,从第二消息队列中获取关于支付结果的消息体,完成本次支付操作。
由于现有技术提供的支付***架构中业务***直接对接支付平台,导致支付平台需要针对每个业务***开发专门的服务接口,进而导致***扩展能力不足,且增加了***开发、测试、运维的成本和复杂度。
而本公开实施例,在***架构中设置了MQ消息队列,增加了***解耦性,业务***无需直接对接支付平台,因而支付平台无需针对每个业务***开发专门的服务接口,能够提高***扩展能力,且能够减少***开发、测试、运维的成本和复杂度。例如,有新的业务***接入支付平台时,支付平台不需要重复开发、测试与发布新版本上线。
此外,增加MQ消息队列不仅可以增加***解耦性,而且能够增加***高峰请求时的缓存处理能力。并且,通过MQ应答,还可以增加***的高可用性,避免了响应时网络抖动或中断时Rest或http请求丢失问题。
作为一种可选的实施例,将支付消息传输给第一消息队列,包括:将支付消息发送给消息队列集群中的交换机,使得交换机能够按照预定方式将支付消息发送给第一消息队列。
在本公开实施例中,限定了MQ队列集群包括多个支付请求接入消息队列的情况,这样,业务***群组中不再是所有的业务***产生的支付消息都会进入同一个消息队列,而是所有的业务***先将支付消息发送给消息队列集群中的交换机,再由交换机按照动态路由机制将支付消息发送给其中一个消息队列,如第一消息队列。
如图3所示,*.request.*表示路由关键字routingKey,多个业务***生产的所有支付消息全部发送至MQ队列集群中的交换机,交换机按routingKey:*.request.*通配规则通过预定方式,如广播消息至“消息队列群组”中的每个队列。其中,如果一个队列消息被一个队列消费,则其它队列中相同消息拷贝将不会再被消费,且被消费消息体中按约定应包含对应的“业务***”标识ID,并将消息内容持久化保存在支付平台。
通过本公开实施例,使用消息队列集群代替单个消息队列,可以增加***高峰请求时的缓存处理能力。
作为一种可选的实施例,预定方式包括:轮询方式,或者广播方式,或者权重配比。
作为一种可选的实施例,针对支付操作,生成对应的支付消息,包括:针对支付操作,生成对应的携带有业务***标识的支付消息,其中,第三方支付渠道在响应于支付请求时,生成的支付结果对应的消息体中也携带有业务***标识。
其中,在支付消息中添加业务***标识,可以帮助支付平台识别支付消息来自哪个业务***;而在支付结果消息中添加业务***标识,则可以帮助支付平台将支付结果准确无误地传输给业务***群组中的支付请求发起方。
具体地,支付平台同步完第三方支付渠道的支付状态结果,会拷贝“请求路由写入”环节中持久化保存的消息体,并往消息体中追加支付操作结果状态,并将追加支付操作结果状态后的消息发送至业务***群组中的交换机,交换机根据MQ队列集群提供路由功能,按动态路由规则-1、动态路由规则-2约定的路由,动态将原业务***请求的消息响应结果,动态路由回写入业务***1、业务***2、业务***3监听的Queue1、Queue2、Queue3,再由业务***消费Queue1、Queue2、Queue3消息队列响应消息,进行相应业务处理。
如图4所示,动态路由规则-1规定:*.reponse.p1、*.reponse.p2、*.reponse.p3中的*.response为路由前缀,p1、p2、p3对应“业务***”标识ID,且跟Response Queue1、Response Queue2、Response Queue3一一对应,如此,MQ队列集群中的交换机就可以按规则-1将支付平台的支付结果消息分配给消息队列群组中的相应队列。此外,动态路由规则-2规定:业务***1、业务***2、业务***3按***标识ID,对应分别监听Response Queue1、Response Queue2、Response Queue3消息队列。
通过本公开实施例,通过在支付消息和响应结果中分别添加业务***的标识信息,使得支付结果能够准确地反馈给对应的业务***。
此外,现有的***处理并发业务操作的能力有限,针对复杂的支付结算业务逻辑,单节点服务器处理请求的***吞吐量TPS一般不会超过300,这样,高峰时段很容易把服务器节点压垮,而根据本公开的实施例,因为采用了消息队列或消息队列集群连接业务***和支付平台的技术手段,所以至少部分地克服了相关技术中由于业务***直接对接支付平台,支付平台需要针对每个业务***开发专门的服务接口,导致***扩展能力和业务处理能力不足,且增加了***开发、测试、运维的成本和复杂度的技术问题,进而能够达到提高***扩展能力和业务处理能力的目的,并且还能够实现减少***开发、测试、运维的成本和复杂度的技术效果。
图5示意性示出了根据本公开另一实施例的数据处理方法的流程图。
如图5所示,该方法包括操作S510~S540,其中:
在操作S510,从第一消息队列或者消息队列集群获取来自业务***的针对支付操作的支付消息;
在操作S520,依据支付消息,生成对应的支付请求;
在操作S530,将支付请求转发给第三方支付渠道,使得第三方支付渠道能够响应于支付请求,生成针对支付操作的支付结果;以及
在操作S540,获取支付结果并将支付结果对应的消息体传输给第二消息队列或消息队列集群,使得业务***能够从第二消息队列或消息队列集群获取关于支付结果的消息体,完成本次支付操作。
需要说明的是,本公开实施例提供的是从支付平台侧实现支付操作的方法,与前述实施例中提供的是从业务***侧实现支付操作的方法相同或类似,在此不再赘述。
通过本公开实施例,在***架构中设置了MQ消息队列,增加了***解耦性,业务***无需直接对接支付平台,因而支付平台无需针对每个业务***开发专门的服务接口,能够提高***扩展能力,且能够减少***开发、测试、运维的成本和复杂度。例如,有新的业务***接入支付平台时,支付平台不需要重复开发、测试与发布新版本上线。
此外,增加MQ消息队列不仅可以增加***解耦性,而且能够增加***高峰请求时的缓存处理能力。并且,通过MQ应答,还可以增加***的高可用性,避免了响应时网络抖动或中断时Rest或http请求丢失问题。
作为一种可选的实施例,将支付结果对应的消息体传输给消息队列集群,包括:将支付结果对应的消息体传输给消息队列集群中与业务***绑定的消息队列。
其中,在支付消息中添加业务***标识,可以帮助支付平台识别支付消息来自哪个业务***;而在支付结果消息中添加业务***标识,则可以帮助支付平台将支付结果准确无误地传输给业务***群组中的支付请求发起方。
通过本公开实施例,通过在支付消息和响应结果中分别添加业务***的标识信息,使得支付结果能够准确地反馈给对应的业务***。
图6示意性示出了根据本公开实施例的数据处理***的框图。
如图6所示,该数据处理***600包括:第一生成模块610、第一传输模块620和第一获取模块630。
第一生成模块610,用于针对支付操作,生成对应的支付消息;
第一传输模块620,用于将支付消息传输给第一消息队列,使得支付平台能够从第一消息队列获取支付消息,并依据支付消息,生成对应的支付请求,进而将支付请求转发给第三方支付渠道,使得第三方支付渠道能够响应于支付请求,生成针对支付操作的支付结果,并将支付结果同步给支付平台,使得支付平台能够将支付结果对应的消息体传输给第二消息队列;以及
第一获取模块630,用于从第二消息队列中获取关于支付结果的消息体,完成本次支付操作。
通过本公开实施例,在***架构中设置了MQ消息队列,增加了***解耦性,业务***无需直接对接支付平台,因而支付平台无需针对每个业务***开发专门的服务接口,能够提高***扩展能力,且能够减少***开发、测试、运维的成本和复杂度。例如,有新的业务***接入支付平台时,支付平台不需要重复开发、测试与发布新版本上线。
此外,增加MQ消息队列不仅可以增加***解耦性,而且能够增加***高峰请求时的缓存处理能力。并且,通过MQ应答,还可以增加***的高可用性,避免了响应时网络抖动或中断时Rest或http请求丢失问题。
作为一种可选的实施例,第一传输模块还用于:将支付消息发送给消息队列集群中的交换机,使得交换机能够按照预定方式将支付消息发送给第一消息队列。
通过本公开实施例,使用消息队列集群代替单个消息队列,可以增加***高峰请求时的缓存处理能力。
作为一种可选的实施例,预定方式包括:轮询方式,或者广播方式,或者权重配比。
作为一种可选的实施例,第一生成模块还用于:针对支付操作,生成对应的携带有业务***标识的支付消息,其中,第三方支付渠道在响应于支付请求时,生成的支付结果对应的消息体中也携带有业务***标识。
通过本公开实施例,通过在支付消息和响应结果中分别添加业务***的标识信息,使得支付结果能够准确地反馈给对应的业务***。
图7示意性示出了根据本公开另一实施例的数据处理***的框图。
如图7所示,该数据处理***700包括:第二获取模块710、第二生成模块720、第二传输模块730和第三传输模块740。
第二获取模块710,用于从第一消息队列或者消息队列集群获取来自业务***的针对支付操作的支付消息;
第二生成模块720,用于依据支付消息,生成对应的支付请求;
第二传输模块730,用于将支付请求转发给第三方支付渠道,使得第三方支付渠道能够响应于支付请求,生成针对支付操作的支付结果;以及
第三传输模块740,用于获取支付结果并将支付结果对应的消息体传输给第二消息队列或消息队列集群,使得业务***能够从第二消息队列或消息队列集群获取关于支付结果的消息体,完成本次支付操作。
通过本公开实施例,在***架构中设置了MQ消息队列,增加了***解耦性,业务***无需直接对接支付平台,因而支付平台无需针对每个业务***开发专门的服务接口,能够提高***扩展能力,且能够减少***开发、测试、运维的成本和复杂度。例如,有新的业务***接入支付平台时,支付平台不需要重复开发、测试与发布新版本上线。
此外,增加MQ消息队列不仅可以增加***解耦性,而且能够增加***高峰请求时的缓存处理能力。并且,通过MQ应答,还可以增加***的高可用性,避免了响应时网络抖动或中断时Rest或http请求丢失问题。
作为一种可选的实施例,第二传输模块还用于:将支付结果对应的消息体传输给消息队列集群中与业务***绑定的消息队列。
通过本公开实施例,通过在支付消息和响应结果中分别添加业务***的标识信息,使得支付结果能够准确地反馈给对应的业务***。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一生成模块610、第一传输模块620和第一获取模块630(或者第二获取模块710、第二生成模块720、第二传输模块730和第三传输模块740)中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块可以被拆分成多个模块/单元/子单元。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,第一生成模块610、第一传输模块620和第一获取模块630(或者第二获取模块710、第二生成模块720、第二传输模块730和第三传输模块740)中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一生成模块610、第一传输模块620和第一获取模块630(或者第二获取模块710、第二生成模块720、第二传输模块730和第三传输模块740)中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,无论是业务***侧还是支付平台侧,本公开的实施例中数据处理***部分与本公开的实施例中数据处理方法部分是相对应的,数据处理***部分的描述具体参考数据处理方法部分,在此不再赘述。
图8示意性示出了根据本公开实施例的适于实现数据处理方法的计算机***的框图。图8示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机***800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有***800操作所需的各种程序和数据。处理器801、ROM 802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,***800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。***800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种数据处理方法,包括:
针对支付操作,生成对应的支付消息;
将所述支付消息传输给第一消息队列,使得支付平台能够从所述第一消息队列获取所述支付消息,并依据所述支付消息,生成对应的支付请求,进而将所述支付请求转发给第三方支付渠道,使得所述第三方支付渠道能够响应于所述支付请求,生成针对所述支付操作的支付结果,并将所述支付结果同步给所述支付平台,使得所述支付平台能够将所述支付结果对应的消息体传输给第二消息队列;以及
从所述第二消息队列中获取关于所述支付结果的消息体,完成本次支付操作。
2.根据权利要求1所述的方法,其中,所述将所述支付消息传输给第一消息队列,包括:
将所述支付消息发送给消息队列集群中的交换机,使得所述交换机能够按照预定方式将所述支付消息发送给所述第一消息队列。
3.根据权利要求2所述的方法,其中,所述预定方式包括:轮询方式,或者广播方式,或者权重配比。
4.根据权利要求2所述的方法,其中,所述针对支付操作,生成对应的支付消息,包括:
针对所述支付操作,生成对应的携带有业务***标识的支付消息,
其中,所述第三方支付渠道在响应于所述支付请求时,生成的所述支付结果对应的消息体中也携带有所述业务***标识。
5.一种数据处理方法,包括:
从第一消息队列或者消息队列集群获取来自业务***的针对支付操作的支付消息;
依据所述支付消息,生成对应的支付请求;
将所述支付请求转发给第三方支付渠道,使得所述第三方支付渠道能够响应于所述支付请求,生成针对所述支付操作的支付结果;以及
获取所述支付结果并将所述支付结果对应的消息体传输给第二消息队列或所述消息队列集群,使得所述业务***能够从所述第二消息队列或所述消息队列集群获取关于所述支付结果的消息体,完成本次支付操作。
6.根据权利要求5所述的方法,其中,所述将所述支付结果对应的消息体传输给所述消息队列集群,包括:
将所述支付结果对应的消息体传输给所述消息队列集群中与所述业务***绑定的消息队列。
7.一种数据处理***,包括:
第一生成模块,用于针对支付操作,生成对应的支付消息;
第一传输模块,用于将所述支付消息传输给第一消息队列,使得支付平台能够从所述第一消息队列获取所述支付消息,并依据所述支付消息,生成对应的支付请求,进而将所述支付请求转发给第三方支付渠道,使得所述第三方支付渠道能够响应于所述支付请求,生成针对所述支付操作的支付结果,并将所述支付结果同步给所述支付平台,使得所述支付平台能够将所述支付结果对应的消息体传输给第二消息队列;以及
第一获取模块,用于从所述第二消息队列中获取关于所述支付结果的消息体,完成本次支付操作。
8.根据权利要求7所述的***,其中,所述第一传输模块还用于:
将所述支付消息发送给消息队列集群中的交换机,使得所述交换机能够按照预定方式将所述支付消息发送给所述第一消息队列。
9.根据权利要求8所述的***,其中,所述预定方式包括:轮询方式,或者广播方式,或者权重配比。
10.根据权利要求8所述的***,其中,所述第一生成模块还用于:
针对所述支付操作,生成对应的携带有业务***标识的支付消息,
其中,所述第三方支付渠道在响应于所述支付请求时,生成的所述支付结果对应的消息体中也携带有所述业务***标识。
11.一种数据处理***,包括:
第二获取模块,用于从第一消息队列或者消息队列集群获取来自业务***的针对支付操作的支付消息;
第二生成模块,用于依据所述支付消息,生成对应的支付请求;
第二传输模块,用于将所述支付请求转发给第三方支付渠道,使得所述第三方支付渠道能够响应于所述支付请求,生成针对所述支付操作的支付结果;以及
第三传输模块,用于获取所述支付结果并将所述支付结果对应的消息体传输给第二消息队列或所述消息队列集群,使得所述业务***能够从所述第二消息队列或所述消息队列集群获取关于所述支付结果的消息体,完成本次支付操作。
12.根据权利要求11所述的***,其中,所述第三传输模块还用于:
将所述支付结果对应的消息体传输给所述消息队列集群中与所述业务***绑定的消息队列。
13.一种计算机***,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430290.8A CN111222862A (zh) | 2018-11-27 | 2018-11-27 | 数据处理方法及***、介质和计算机*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430290.8A CN111222862A (zh) | 2018-11-27 | 2018-11-27 | 数据处理方法及***、介质和计算机*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111222862A true CN111222862A (zh) | 2020-06-02 |
Family
ID=70830527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811430290.8A Pending CN111222862A (zh) | 2018-11-27 | 2018-11-27 | 数据处理方法及***、介质和计算机*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111222862A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112150154A (zh) * | 2020-10-17 | 2020-12-29 | 广州酷点网络技术有限公司 | 一种自适应渠道决策的聚合支付*** |
CN113360387A (zh) * | 2021-06-18 | 2021-09-07 | 深圳银兴科技开发有限公司 | 银行支付结算模拟器 |
CN114187999A (zh) * | 2022-02-17 | 2022-03-15 | 四川赛尔斯科技有限公司 | 一种医院统一支付管理平台及控制方法 |
CN114553932A (zh) * | 2022-04-24 | 2022-05-27 | 深圳市明源云科技有限公司 | ***集成对接方法、装置、设备与介质 |
WO2024022087A1 (zh) * | 2022-07-27 | 2024-02-01 | 京东方科技集团股份有限公司 | 数据处理方法及装置、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753817A (zh) * | 2013-12-25 | 2015-07-01 | ***通信集团公司 | 一种云计算消息队列服务本地模拟方法和*** |
CN105590191A (zh) * | 2015-09-08 | 2016-05-18 | ***股份有限公司 | 用于交易数据接入的接口***及其实现方法 |
CN106096922A (zh) * | 2016-06-07 | 2016-11-09 | 苏州比可网络科技有限公司 | 一种分布式支付集成云平台 |
CN106970846A (zh) * | 2017-03-15 | 2017-07-21 | 北京驰波信息工程有限公司 | 支付***消息控制和处理方法、装置 |
CN107408247A (zh) * | 2015-03-11 | 2017-11-28 | 脸谱公司 | 使用消息和支付队列来促进支付的发送、接收和更新 |
CN108038679A (zh) * | 2017-12-05 | 2018-05-15 | 苏州比可网络科技有限公司 | 发送支付消息的方法和聚合支付平台 |
-
2018
- 2018-11-27 CN CN201811430290.8A patent/CN111222862A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753817A (zh) * | 2013-12-25 | 2015-07-01 | ***通信集团公司 | 一种云计算消息队列服务本地模拟方法和*** |
CN107408247A (zh) * | 2015-03-11 | 2017-11-28 | 脸谱公司 | 使用消息和支付队列来促进支付的发送、接收和更新 |
CN105590191A (zh) * | 2015-09-08 | 2016-05-18 | ***股份有限公司 | 用于交易数据接入的接口***及其实现方法 |
CN106096922A (zh) * | 2016-06-07 | 2016-11-09 | 苏州比可网络科技有限公司 | 一种分布式支付集成云平台 |
CN106970846A (zh) * | 2017-03-15 | 2017-07-21 | 北京驰波信息工程有限公司 | 支付***消息控制和处理方法、装置 |
CN108038679A (zh) * | 2017-12-05 | 2018-05-15 | 苏州比可网络科技有限公司 | 发送支付消息的方法和聚合支付平台 |
Non-Patent Citations (1)
Title |
---|
青岛英谷教育科技股份有限公司,山东工商学院: "《大数据开发与应用》", 31 August 2018, 西安电子科技大学出版社, pages: 184 - 185 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112150154A (zh) * | 2020-10-17 | 2020-12-29 | 广州酷点网络技术有限公司 | 一种自适应渠道决策的聚合支付*** |
CN113360387A (zh) * | 2021-06-18 | 2021-09-07 | 深圳银兴科技开发有限公司 | 银行支付结算模拟器 |
CN113360387B (zh) * | 2021-06-18 | 2022-03-18 | 深圳银兴科技开发有限公司 | 银行支付结算模拟器 |
CN114187999A (zh) * | 2022-02-17 | 2022-03-15 | 四川赛尔斯科技有限公司 | 一种医院统一支付管理平台及控制方法 |
CN114187999B (zh) * | 2022-02-17 | 2022-04-19 | 四川赛尔斯科技有限公司 | 一种医院统一支付管理平台及控制方法 |
CN114553932A (zh) * | 2022-04-24 | 2022-05-27 | 深圳市明源云科技有限公司 | ***集成对接方法、装置、设备与介质 |
WO2024022087A1 (zh) * | 2022-07-27 | 2024-02-01 | 京东方科技集团股份有限公司 | 数据处理方法及装置、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111222862A (zh) | 数据处理方法及***、介质和计算机*** | |
CN109035016B (zh) | 一种多链并发交易方法 | |
CN110401720B (zh) | 信息处理方法、装置、***、应用服务器和介质 | |
CN113132489A (zh) | 下载文件的方法、装置、计算设备和介质 | |
CN110443593B (zh) | 交易处理方法及装置、交易处理***和计算机*** | |
CN110535659B (zh) | 用于处理数据请求的方法、装置、电子设备和计算机可读介质 | |
CN109286578A (zh) | 消息处理方法、装置、网关设备及存储介质 | |
CN110083745B (zh) | 数据查询方法、设备和存储介质 | |
CN111950249B (zh) | 报文生成方法、装置、电子设备及存储介质 | |
CN112583585B (zh) | 交易执行方法、设备和存储介质 | |
JP6758139B2 (ja) | 効率的な呼処理のためのシステムおよび方法 | |
CN109522198A (zh) | 应用程序的处理方法、装置、电子设备及可读存储介质 | |
CN112329049A (zh) | 业务数据管理方法、装置、电子设备和介质 | |
CN111200606A (zh) | 深度学习模型任务处理方法、***、服务器及存储介质 | |
CN110968433A (zh) | 信息处理方法、***和电子设备 | |
CN113179324B (zh) | 一种区块链节点及其执行的业务处理方法 | |
CN111432001A (zh) | 用于跳转场景的方法、装置、电子设备和计算机可读介质 | |
CN112714042B (zh) | 压力测试方法、装置、电子设备和存储介质 | |
CN113778699A (zh) | 分布式事务处理方法、装置、计算机***和可读存储介质 | |
CN113448796A (zh) | 服务监控方法、装置、计算机***和介质 | |
CN111162973A (zh) | 数据流量采集方法、装置、电子设备和介质 | |
CN113032491B (zh) | 实现静态数据同步的方法、装置、电子设备及介质 | |
CN113592646A (zh) | 智能合约的执行方法、装置和*** | |
CN114567577A (zh) | 心跳检测方法、装置、电子设备及存储介质 | |
CN115250276A (zh) | 分布式***及数据处理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant before: BEIJING JINGDONG FINANCIAL TECHNOLOGY HOLDING Co.,Ltd. |