一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

安全的账户代付方法和装置与流程

2021-10-24 06:57:00 来源:中国专利 TAG:账户 装置 电子支付 方法 代付


1.本发明涉及电子支付技术领域,尤其是涉及安全的账户代付方法和装置。


背景技术:

2.支付公司根据商户指令进行高频次代收和代付,为了确保代付业务的资金安全,需要锁定商户账户逐笔排队代付,每笔代付前都需要校验商户账户余额是否充足,此过程会实时计算商户账户可用余额,其中,当每笔代收和代付生成的单独记录发生额都会统计到商户账户可用余额中。
3.当商户账户可用余额大于或等于代付金额时,冻结商户账户可用资金,进行后续代付流程。
4.但是,账户代付排队采用的是oracle数据库技术,获取排队锁和释放排队锁性能差,拉长商户单笔代付排队时间。
5.另外,统计商户账户可用余额需要实时统计商户所有代收和代付交易的发生额,随着交易数据量的增加,实时统计时间会拉长,导致逐笔代付账户排队时间变长,影响商户其它代付请求处理时间,最终导致商户代付并发处理能力差。


技术实现要素:

6.有鉴于此,本发明的目的在于提供安全的账户代付方法和装置,采用zookeeper锁排队技术提高获取锁和释放性能,采用redis动态校验余额,避免数据库实时统计余额的问题,缩短单笔代付排队时间,提高代付效率。
7.第一方面,本发明实施例提供了安全的账户代付方法,应用于服务器,所述方法包括:
8.接收客户端发送的代付请求信息,所述代付请求信息包括商户对应的账户id;
9.判断zookeeper配置开关是否为开启状态;
10.如果所述zookeeper配置所述开关为所述开启状态,则根据所述账户id确定所述商户采用所述zookeeper锁排队技术进行排队;
11.判断排队是否超时;
12.如果所述排队没有超时,则判断redis配置所述开关是否为开启状态;
13.如果所述redis配置所述开关为所述开启状态,则所述redis读取临时账户余额;
14.判断所述临时账户余额是否大于或等于代付金额;
15.如果所述临时账户余额大于或等于所述代付金额,则从所述redis中扣除所述代付金额;
16.如果所述临时账户余额小于所述代付金额或所述redis配置所述开关为关闭状态,则实时统计商户账户余额;
17.根据所述实时统计商户账户余额确定代付操作结果。
18.进一步的,所述根据所述实时统计商户账户余额确定代付操作结果,包括:
19.判断所述商户账户余额是否大于或等于所述代付金额;
20.如果所述商户账户余额大于或等于所述代付金额,则所述redis存储所述商户账户余额,并将所述商户账户余额作为所述临时账户余额,并从所述临时账户余额中扣除所述代付金额;
21.如果所述商户账户余额小于所述代付金额,则所述redis存储所述商户账户余额,并将所述商户账户余额作为所述临时账户余额,并向所述客户端发送代付请求失败信息。
22.进一步的,所述判断zookeeper配置开关是否为开启状态,包括:
23.如果所述zookeeper配置所述开关为关闭状态,则根据所述账户id确定所述商户采用oracle锁排队技术进行排队。
24.进一步的,所述判断排队是否超时,包括:
25.如果所述排队超时,则向所述客户端发送代付请求失败信息。
26.第二方面,本发明实施例提供了安全的账户代付装置,应用于服务器,所述装置包括:
27.接收单元,用于接收客户端发送的代付请求信息,所述代付请求信息包括商户对应的账户id;
28.第一判断单元,用于判断zookeeper配置开关是否为开启状态;
29.排队确定单元,用于在所述zookeeper配置所述开关为所述开启状态的情况下,根据所述账户id确定所述商户采用所述zookeeper锁排队技术进行排队;
30.第二判断单元,用于判断排队是否超时;
31.第三判断单元,用于在所述排队没有超时的情况下,判断redis配置所述开关是否为开启状态;
32.读取单元,用于在所述redis配置所述开关为所述开启状态的情况下,所述redis读取临时账户余额;
33.第四判断单元,用于判断所述临时账户余额是否大于或等于代付金额;
34.扣除单元,用于在所述临时账户余额大于或等于所述代付金额的情况下,从所述redis中扣除所述代付金额;
35.统计单元,用于在所述临时账户余额小于所述代付金额或所述redis配置所述开关为关闭状态的情况下,实时统计商户账户余额;
36.代付操作结果确定单元,用于根据所述实时统计商户账户余额确定代付操作结果。
37.进一步的,所述代付操作结果确定单元具体用于:
38.判断所述商户账户余额是否大于或等于所述代付金额;
39.如果所述商户账户余额大于或等于所述代付金额,则所述redis存储所述商户账户余额,并将所述商户账户余额作为所述临时账户余额,并从所述临时账户余额中扣除所述代付金额;
40.如果所述商户账户余额小于所述代付金额,则所述redis存储所述商户账户余额,并将所述商户账户余额作为所述临时账户余额,并向所述客户端发送代付请求失败信息。
41.进一步的,所述第一判断单元具体用于:
42.在所述zookeeper配置所述开关为关闭状态的情况下,根据所述账户id确定所述
商户采用oracle锁排队技术进行排队。
43.进一步的,所述第二判断单元具体用于:
44.在所述排队超时的情况下,向所述客户端发送代付请求失败信息。
45.第三方面,本发明实施例提供了电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
46.第四方面,本发明实施例提供了具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行如上所述的方法。
47.本发明实施例提供了安全的账户代付方法和装置,包括:接收客户端发送的代付请求信息,代付请求信息包括商户对应的账户id;判断zookeeper配置开关是否为开启状态;如果zookeeper配置开关为开启状态,则根据账户id确定商户采用zookeeper锁排队技术进行排队;判断排队是否超时;如果排队没有超时,则判断redis配置开关是否为开启状态;如果redis配置所述开关为开启状态,则redis读取临时账户余额;判断临时账户余额是否大于或等于代付金额;如果临时账户余额大于或等于代付金额,则从redis中扣除所述代付金额;如果临时账户余额小于代付金额或redis配置开关为关闭状态,则实时统计商户账户余额;根据实时统计商户账户余额确定代付操作结果;采用zookeeper锁排队技术提高获取锁和释放性能,采用redis动态校验余额,避免数据库实时统计余额的问题,缩短单笔代付排队时间,提高代付效率。
48.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
49.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
50.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1为本发明实施例一提供的安全的账户代付方法流程图;
52.图2为本发明实施例一提供的安全的账户代付方法中步骤s111的流程图;
53.图3为本发明实施例二提供的安全的账户代付装置示意图。
54.图标:
[0055]1‑
接收单元;2

第一判断单元;3

排队确定单元;4

第二判断单元;5

第三判断单元;6

读取单元;7

第四判断单元;8

扣除单元;9

统计单元;10

代付操作结果确定单元。
具体实施方式
[0056]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是
全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057]
为便于对本实施例进行理解,下面对本发明实施例进行详细介绍。
[0058]
实施例一:
[0059]
图1为本发明实施例一提供的安全的账户代付方法流程图。
[0060]
参照图1,应用于服务器,该方法包括以下步骤:
[0061]
步骤s101,接收客户端发送的代付请求信息,代付请求信息包括商户对应的账户id;
[0062]
步骤s102,判断zookeeper配置开关是否为开启状态;如果zookeeper配置开关为开启状态,则执行步骤s103;如果zookeeper配置开关为关闭状态,则执行步骤s104;
[0063]
步骤s103,根据账户id确定商户采用zookeeper锁排队技术进行排队;
[0064]
步骤s104,根据账户id确定商户采用oracle锁排队技术进行排队;
[0065]
具体地,zookeeper为一个分布式的小文件存储系统。如果zookeeper配置开关为开启状态,则根据账户id商户采用zookeeper锁排队技术进行排队;如果zookeeper配置开关为关闭状态,则根据账户id商户采用oracle锁排队技术进行排队;当商户排队成功后,冻结账户资金操作,如果排队时间超时,则向客户端发送代付请求失败信息。
[0066]
步骤s105,判断排队是否超时;如果排队没有超时,则执行步骤s106;
[0067]
这里,如果排队超时,则向客户端发送代付请求失败信息。
[0068]
步骤s106,判断redis配置开关是否为开启状态;如果redis配置开关为开启状态,则执行步骤s107;
[0069]
步骤s107,redis读取临时账户余额;
[0070]
步骤s108,判断临时账户余额是否大于或等于代付金额;如果临时账户余额大于或等于代付金额,则执行步骤s109;如果临时账户余额小于代付金额或redis配置开关为关闭状态,则执行步骤s110;
[0071]
步骤s109,从redis中扣除代付金额;
[0072]
步骤s110,实时统计商户账户余额;
[0073]
步骤s111,根据实时统计商户账户余额确定代付操作结果。
[0074]
具体地,当商户排队成功后,判断redis配置开关是否为开启状态;如果处于开启状态,则redis读取临时账户余额,判断临时账户余额是否大于或等于代付金额;如果临时账户余额大于或等于代付金额,则从redis中扣除代付金额,直接进行代付操作;如果临时账户余额小于代付金额,则实时统计商户账户余额。此处,如果redis未存储临时账户余额,也需要实时统计商户账户余额。
[0075]
如果redis配置开关为关闭状态,则实时统计商户账户余额,根据实时统计商户账户余额确定代付操作结果。
[0076]
其中,代付操作结果包括代付请求成功信息或代付请求失败信息。
[0077]
进一步的,参照图2,步骤s111包括以下步骤:
[0078]
步骤s201,判断商户账户余额是否大于或等于代付金额;如果商户账户余额大于或等于代付金额,则执行步骤s202;如果商户账户余额小于代付金额,则执行步骤s203;
[0079]
步骤s202,redis存储商户账户余额,并将商户账户余额作为临时账户余额,并从
临时账户余额中扣除代付金额;
[0080]
步骤s203,redis存储商户账户余额,并将商户账户余额作为临时账户余额,并向客户端发送代付请求失败信息。
[0081]
具体地,在实时统计商户账户余额过程中,如果商户账户余额大于或等于代付金额,则redis存储商户账户余额,并将商户账户余额作为临时账户余额,冻结账户资金,并从临时账户余额中扣除代付金额;如果商户账户余额小于代付金额,则redis存储商户账户余额,并将商户账户余额作为临时账户余额,不冻结账户资金,并向客户端发送代付请求失败信息。
[0082]
在现有技术中使用oracle锁排队技术进行排队,获取和释放锁分别需要向数据库插入和删除记录,性能很低;本技术采用zookeeper锁排队技术进行排队和redis动态校验账户余额,及定期修正,提高了释放性能;
[0083]
在现有技术中每笔代发都需要统计账户可用余额,当数据库的数据量比较大时,存在严重的性能问题;本技术在redis中临时存储可用余额,当商户账户余额充足情况下,不需要每次统计实时余额,有效规避了数据库统计实时余额的性能问题,从而缩短单笔代付排队时间,提高了单位时间内商户的代付能力。
[0084]
本发明实施例提供了安全的账户代付方法,包括:接收客户端发送的代付请求信息,代付请求信息包括商户对应的账户id;判断zookeeper配置开关是否为开启状态;如果zookeeper配置开关为开启状态,则根据账户id确定商户采用zookeeper锁排队技术进行排队;判断排队是否超时;如果排队没有超时,则判断redis配置开关是否为开启状态;如果redis配置所述开关为开启状态,则redis读取临时账户余额;判断临时账户余额是否大于或等于代付金额;如果临时账户余额大于或等于代付金额,则从redis中扣除所述代付金额;如果临时账户余额小于代付金额或redis配置开关为关闭状态,则实时统计商户账户余额;根据实时统计商户账户余额确定代付操作结果;采用zookeeper锁排队技术提高获取锁和释放性能,采用redis动态校验余额,避免数据库实时统计余额的问题,缩短单笔代付排队时间,提高代付效率。
[0085]
实施例二:
[0086]
图3为本发明实施例二提供的安全的账户代付装置示意图。
[0087]
参照图3,应用于服务器,该装置包括:
[0088]
接收单元1,用于接收客户端发送的代付请求信息,代付请求信息包括商户对应的账户id;
[0089]
第一判断单元2,用于判断zookeeper配置开关是否为开启状态;
[0090]
排队确定单元3,用于在zookeeper配置开关为开启状态的情况下,根据账户id确定商户采用zookeeper锁排队技术进行排队;
[0091]
第二判断单元4,用于判断排队是否超时;
[0092]
第三判断单元5,用于在排队没有超时的情况下,判断redis配置开关是否为开启状态;
[0093]
读取单元6,用于在redis配置开关为开启状态的情况下,redis读取临时账户余额;
[0094]
第四判断单元7,用于判断临时账户余额是否大于或等于代付金额;
[0095]
扣除单元8,用于在临时账户余额大于或等于代付金额的情况下,从redis中扣除所述代付金额;
[0096]
统计单元9,用于在临时账户余额小于代付金额或redis配置开关为关闭状态的情况下,实时统计商户账户余额;
[0097]
代付操作结果确定单元10,用于根据实时统计商户账户余额确定代付操作结果。
[0098]
进一步的,代付操作结果确定单元10具体用于:
[0099]
判断商户账户余额是否大于或等于代付金额;
[0100]
如果商户账户余额大于或等于代付金额,则redis存储商户账户余额,并将商户账户余额作为临时账户余额,并从临时账户余额中扣除代付金额;
[0101]
如果商户账户余额小于代付金额,则redis存储商户账户余额,并将商户账户余额作为临时账户余额,并向客户端发送代付请求失败信息。
[0102]
进一步的,第一判断单元2具体用于:
[0103]
在zookeeper配置开关为关闭状态的情况下,根据账户id确定商户采用oracle锁排队技术进行排队。
[0104]
进一步的,第二判断单元4具体用于:
[0105]
在排队超时的情况下,向客户端发送代付请求失败信息。
[0106]
本发明实施例提供了安全的账户代付方法,包括:接收客户端发送的代付请求信息,代付请求信息包括商户对应的账户id;判断zookeeper配置开关是否为开启状态;如果zookeeper配置开关为开启状态,则根据账户id确定商户采用zookeeper锁排队技术进行排队;判断排队是否超时;如果排队没有超时,则判断redis配置开关是否为开启状态;如果redis配置所述开关为开启状态,则redis读取临时账户余额;判断临时账户余额是否大于或等于代付金额;如果临时账户余额大于或等于代付金额,则从redis中扣除所述代付金额;如果临时账户余额小于代付金额或redis配置开关为关闭状态,则实时统计商户账户余额;根据实时统计商户账户余额确定代付操作结果;采用zookeeper锁排队技术提高获取锁和释放性能,采用redis动态校验余额,避免数据库实时统计余额的问题,缩短单笔代付排队时间,提高代付效率。
[0107]
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的安全的账户代付方法的步骤。
[0108]
本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,计算机可读介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例的安全的账户代付方法的步骤。
[0109]
本发明实施例所提供的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0110]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0111]
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可
以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0112]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0113]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0114]
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜