交易数据存储方法、装置、设备及存储介质制造方法及图纸

技术编号:24412497 阅读:22 留言:0更新日期:2020-06-06 09:52
本发明专利技术实施例公开了一种交易数据存储方法、装置、设备及存储介质。所述方法包括:将获取的交易数据缓存至临时队列,并根据所述交易数据请求支付网关,以获取所述支付网关返回的交易结果;如果接收到所述支付网关返回的交易成功结果,则将所述临时队列中缓存的所述交易数据转移至归档队列;从所述归档队列中获取所述交易数据并存储至数据库。通过本发明专利技术的技术方案,能够减小支付网关的访问压力,提高了数据存储效率。

Transaction data storage method, device, equipment and storage medium

【技术实现步骤摘要】
交易数据存储方法、装置、设备及存储介质
本专利技术实施例涉及数据处理技术,尤其涉及一种交易数据存储方法、装置、设备及存储介质。
技术介绍
随着网络交易的普及,网络交易的安全性越来越受到人们的重视,因此,在交易完成后需要将产生的票据等交易数据存储至数据库中,以便与银行、第三方支付平台等支付网关进行对账。对票据的存储一般是在与支付网关交易后,再把票据存储到数据库中,但是高并发请求下可能会造成交易耗时的增加,而且交易后再把票据存储到数据库中会存在丢失的风险,因此,现有技术中是预先将交易的订单号及相关票据发送到消息队列,然后其他的线程从消息队列拉取订单号,再根据订单号去支付网关查询交易结果,将交易结果为成功的订单号所对应的消息队列中的相关票据存储到数据库中。现有技术由于从消息队列拉取订单号后,每个订单都需要查询支付网关才能获取票据,会造成支付网关的访问压力大增。另外,由于每次网络交易是在交易前把订单号发送到消息队列的,所以此时从消息队列获取到订单号后查询支付网关,如果交易还没完成,则获取不到交易结果,需要重试,从而进一步增大支付网关的访问压力。即使将消息队列替换为延迟队列,也需要依赖本地时间的准确性,否则也一样会增大支付网关的访问压力。
技术实现思路
本专利技术实施例提供一种交易数据存储方法、装置、设备及存储介质,以减小支付网关的访问压力,提高了数据存储效率。第一方面,本专利技术实施例提供了一种交易数据存储方法,包括:将获取的交易数据缓存至临时队列,并根据所述交易数据请求支付网关,以获取所述支付网关返回的交易结果;如果接收到所述支付网关返回的交易成功结果,则将所述临时队列中缓存的所述交易数据转移至归档队列;从所述归档队列中获取所述交易数据并存储至数据库。第二方面,本专利技术实施例还提供了一种交易数据存储装置,该装置包括:临时缓存模块,用于将获取的交易数据缓存至临时队列,并根据所述交易数据请求支付网关,以获取所述支付网关返回的交易结果;队列转移模块,用于如果接收到所述支付网关返回的交易成功结果,则将所述临时队列中缓存的所述交易数据转移至归档队列;数据存储模块,用于从所述归档队列中获取所述交易数据并存储至数据库。第三方面,本专利技术实施例还提供了一种电子设备,该设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术实施例中任一所述的交易数据存储方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本专利技术实施例中任一所述的交易数据存储方法。本专利技术实施例通过将获取的交易数据缓存至临时队列,并根据交易数据去请求支付网关,在接收到支付网关返回的交易成功结果时,将临时队列中缓存的交易数据转移至归档队列,再从归档队列中获取交易数据并存储至数据库,利用将等待交易结果的数据和等待存储至数据库的数据分别列队的优点,解决了现有技术中由于交易结果的查询与数据的存储只能依次进行,而导致的增大支付网关的访问压力的问题,实现了减小支付网关的访问压力,提高数据存储效率的效果。附图说明图1a是本专利技术实施例一提供的一种交易数据存储方法的流程示意图;图1b是本专利技术实施例一适用的一种交易过程的流程示意图;图1c是本专利技术实施例一适用的一种临时队列定时任务巡检过程的流程示意图;图2a是本专利技术实施例二提供的一种交易数据存储方法的流程示意图;图2b是本专利技术实施例二适用的一种归档过程的流程示意图;图3是本专利技术实施例三提供的一种交易数据存储装置的结构示意图;图4是本专利技术实施例四提供的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1a为本专利技术实施例一提供的一种交易数据存储方法的流程示意图。该方法可适用于在网络交易过程中对交易数据进行存储的情况,该方法可以由交易数据存储装置来执行,该装置可由硬件和/或软件组成,并一般可集成在手机、电脑以及所有包含网络交易客户端的电子设备中。具体包括如下步骤:S110、将获取的交易数据缓存至临时队列,并根据交易数据请求支付网关,以获取支付网关返回的交易结果。本实施例中,本实施例中的交易数据可以是网络交易过程中产生的数据,泛指一切不影响主要交易流程,可以异步存储的数据,例如票据等需要用于与支付网关对账,但其存储并不属于主要的交易流程,可在空闲时进行异步存储。其中,临时队列可以是由Redis内存队列构建的队列,具体的,Redis是一个基于Key-Value(键值)对的NoSQL数据库,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ(MessageQueue,消息队列)功能,所以完全可以当做一个轻量级的队列服务来使用,而且当入队的数据比较小的时候,其性能优于其他的MQ性能。示例性的,在客户端请求支付网关之前,可将网络交易过程中产生的交易数据先缓存至Redis临时队列,例如使用saddtmp_inc_queue${order}语句完成该缓存操作,其中,tmp_inc_queue是临时队列的key,${order}为交易数据用Json序列化表示的字符串,也即将交易数据中包含的属性及其对应的值转换成字符串,以便于存储,其中,属性种类包括但不限于订单号、交易用户身份标识、交易货币类型、交易金额、交易订单类型、交易时间等。然后,客户端将获取的交易数据中的订单号发送至支付网关,以查询交易结果。其中,支付网关处于交易的上游,其可以是能够提供支付交易的平台,包括但不限于银行、第三方支付平台等。S120、如果接收到支付网关返回的交易成功结果,则将临时队列中缓存的交易数据转移至归档队列。本实施例中,如果支付网关返回的交易结果为成功,也即客户端接收到支付网关返回的交易成功结果,则需要将临时队列中缓存的交易数据转移到归档队列中,其中,归档队列的类型可以与临时队列的类型一样,也即可以是由Redis内存队列构建的队列。例如,可使用smovetmp_inc_queue${order}success_inc_queue语句来完成该转移操作,其中success_inc_queue是归档队列的key。通过构建两个队列,一个是临时队列,另一个是交易成功后的归档队列,交易前先把交易数据存放在临时队列,然后请求支付网关,如果支付网关返回成功,则将临时队列的相关信息转移到归档队列,而归档队列只负责将数据保存到数据库即可,在最终存入至数据库中时就不需要再次查询支付网关,从而减小了支付网关的访问压力。可选的,还包括:如果接收到支付网关返回的交易失败结果,则删除临本文档来自技高网...

【技术保护点】
1.一种交易数据存储方法,其特征在于,包括:/n将获取的交易数据缓存至临时队列,并根据所述交易数据请求支付网关,以获取所述支付网关返回的交易结果;/n如果接收到所述支付网关返回的交易成功结果,则将所述临时队列中缓存的所述交易数据转移至归档队列;/n从所述归档队列中获取所述交易数据并存储至数据库。/n

【技术特征摘要】
1.一种交易数据存储方法,其特征在于,包括:
将获取的交易数据缓存至临时队列,并根据所述交易数据请求支付网关,以获取所述支付网关返回的交易结果;
如果接收到所述支付网关返回的交易成功结果,则将所述临时队列中缓存的所述交易数据转移至归档队列;
从所述归档队列中获取所述交易数据并存储至数据库。


2.根据权利要求1所述的方法,其特征在于,还包括:
如果接收到所述支付网关返回的交易失败结果,则删除所述临时队列中缓存的所述交易数据。


3.根据权利要求1所述的方法,其特征在于,从所述归档队列中获取所述交易数据并存储至数据库,包括:
按照第一预设周期获取所述归档队列中交易数据的数量;
如果所述归档队列中交易数据的数量大于0,则将所述归档队列中缓存的交易数据存储至数据库。


4.根据权利要求3所述的方法,其特征在于,将所述归档队列中缓存的交易数据存储至数据库,包括:
从所述归档队列中获取不超过预设数量的交易数据;
通过异步线程池将获取的所述交易数据存储至数据库。


5.根据权利要求3所述的方法,其特征在于,在将所述归档队列中缓存的交易数据存储至数据库之后,还包括:
如果确定所述交易数据存储成功,则删除所述归档队列中的所述交易数据;
如果确定所述交易数据存储失败,则等待下一个周期重新存储至所述数据库。


6.根据权利要求1所述的方法,其特征在于,还包括:
如果接收所述支付网关返回的交易结果超时,则等待重新请求所述支付网关;
相应的...

【专利技术属性】
技术研发人员:岑锦豪
申请(专利权)人:广州虎牙科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1