一种无资损的资源发放方法及装置与流程

文档序号:16137686发布日期:2018-12-01 01:13阅读:210来源:国知局

本发明涉及互联网技术领域,尤其涉及一种无资损的资源发放方法及装置。

背景技术

在互联网金融行业中,互联网金融公司(简称:互金公司)为了营销,经常会发放各类津贴。目前已有的技术方案分两种,发放对象都是用户的银行存管账户:一种是rpc远程调用,接口返回是否调用成功;二是使用rocketmq等分布式消息中间件,保证消息可靠送达,银行津贴发放成功(或失败)之后再用同样的方式回调通知。银行通知(或接口返回)发放失败的情况下,可选择人工处理或系统自动重试的方法处理。

因为发放津贴的流程里需要依赖存管银行返回的发放结果,而互金公司无法控制外部依赖的稳定性,经常会发生接口调用失败,或返回的消息信息不可靠的情况。使用第一种方法,通常会出现接口调用失败或超时,如果接口调用超时,这个时候无法确定银行究竟是发放成功还是失败,需要人工介入处理,而人工处理在时间上通常是滞后、不及时的,而且需要消耗人力成本。而使用第二种方法,返回消息不可靠的情况是最危险的,有时会出现银行返回发放失败实际发放成功的情况,如果系统有重试机制,或者人工核查不仔细并操作重新发放流程,会导致一笔津贴发放多次,容易给公司带来资源损失。



技术实现要素:

本发明的目的在于提供一种无资损的资源发放方法及装置,解决现有技术中,效率低下并且容易产生大笔资损的技术缺陷,既保证用户及时收到津贴,又规避了资损的风险。

本发明一实施例提供了一种无资损的资源发放方法,包括以下步骤:

向第一资源管理处发送向用户的第一账户发放资源的消息请求;

接收第一资源管理处的发放资源的消息反馈;若发放成功,则向用户的第二账户发放资源;若未发放成功,则自动触发重试机制直至接收到资源已发放成功的消息。

进一步地,本实施例的一种无资损的资源发放方法还包括:

向第二账户发放资源后,判断对第二账户发放资源是否成功,若成功,则设置第二账户的资源对用户可见,若不成功,则触发告警任务。

进一步地,发送向用户的第一账户发放资源的消息请求具体为:

使用分布式消息中间件发送向用户的第一账户发放资源的消息请求,并接收分布式消息中间件的消息反馈,消息反馈包括发放是否成功。

进一步地,本实施例的一种无资损的资源发放方法还包括:

当第二账户的资源对用户可见后,接收用户发出的提取资源请求;

判断用户的提取资源请求、第一账户和第二账户的资源信息是否匹配,若匹配,则设置用户可以提取第二账户中的资源,若不匹配,启动异步核对任务。

本发明一实施例提供了一种无资损的资源发放处理装置,包括:

消息模块:用于发送消息请求或接收消息反馈;

资源发放模块:用于当消息模块接收到已成功向用户的第一账户发放资源的消息反馈后,向用户的第二资源账户发放资源;

重试模块:用于当消息模块接收到未成功向用户的第一账户发放资源的消息反馈后,触发重试机制。

进一步地,还包括判断模块,用于判断用户的第一账户和第二账户的资源信息;

第一处理模块:用于当用户的第二账户收到资源后,将第二账户收到的资源设置为对用户可见;

第二处理模块:用于当用户的第二账户未收到资源,触发告警任务。

进一步地,第一处理模块还用于:设置用户的第二账户可提取资源,相应的,判断模块用于判断用户的提取资源请求、第一账户和第二账户的资源信息是否匹配。

进一步地,第二处理模块还用于:启动异步核对任务,相应的,判断模块用于判断用户的提取资源请求、第一账户和第二账户的资源信息是否匹配。

本发明一实施例还提供了一种电子设备,包括存储器和处理器,存储器用于存储一条或多条计算机指令,其中,一条或多条计算机指令被所述处理器执行以实现如上述任一项无资损的资源发放方法。

本发明一实施例还提供了一种存储有计算机程序的计算机可读存储介质,计算机程序使计算机执行时实现上述任一项无资损的资源发放方法。

本发明实施例提供的一种无资损的资源发放方法、装置和计算机设备,通过为用户设置双账户,发送向用户的第一账户发放资源的消息请求;接收用户的第一账户的资源是否已发放的消息;若发放成功,则向用户的第二账户发放资源;若未发放成功,则自动触发重试机制直至接收到资源已发放成功的消息,保证资源顺利发放至客户,并且保证无资损。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施一提供的一种无资损的资源发放方法的流程示意图。

图2为本发明实施二提供的一种无资损的资源发放方法的流程示意图。

图3为本发明实施三提供的一种无资损的资源发放方法的流程示意图。

图4为本发明实施四提供的一种无资损的资源发放装置的示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下描述中,为了说明而不是为了限定,提出了诸如特定内部程序、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一

本发明实施例一提供了一种无资损的资源发放方法。图1为本发明实施例一提供的无资损的资源发放方法的流程示意图。如图1所示,本实施例的方法,可以包括:

步骤100,向资源管理处发送向用户的第一账户发放资源的消息请求;

步骤101,接收所述第一资源管理处的发放资源是否成功的消息反馈,若发放成功,则进行步骤102,向用户的第二账户发放资源;若未发放成功,则自动触发重试机制直至接收到资源已发放成功的消息。

本实施例中的方法可以应用于互联网金融公司,可以用于任何公司与用户之间有资源发放的场景。

下面通过一个简单的例子解释说明本实施例的处理流程。其中,需要说明的是,举例中的资源发放指的是津贴发放,资源管理处指银行,用户的第一账户指银行的存管账户,第二账户指互金公司账户。

互联网金融公司发起发放资源(津贴)的活动,通常用户在互金公司账户,互金公司通知银行向用户的账户发放津贴,再由用户提现,以达到活动的目的。

现有技术中,通常由银行直接向用户的银行存管账户发放津贴,但银行属于外部依赖,互金公司对银行的控制程度很低,甚至无法控制。因而当互金公司与银行之间的调用接口出现异常时,会存在处理效率低下的问题及发生资损的风险。

本实施例中,互金公司为用户建立两个账户,其中第一账户为用户的银行存管账户,但对用户不可见,第二账户为用户的互金公司账户,该账户为虚拟庄户并且对用户可见。互金公司向银行发出向用户的银行存管账户发放津贴的消息请求,例如,互金公司向银行发送消息请求:向用户的银行存管账户发放资金1000元,用于用户的津贴。

当银行向用户的银行存管账户成功发放了津贴后,通知互金公司,互金公司收到银行成功发放津贴的消息反馈后,向互金公司账户发放津贴(此时,资金仍在用户的银行存管账户中,互金公司账户为虚拟账户,因此互金公司账户中仅以数字代表津贴);如果互金公司收到银行发放失败的消息请求,自动触发重试机制,继续向银行发出向银行存管账户发放津贴的消息请求,直到收到银行发放成功的消息反馈为止。

本实施例中,由于是由互金公司将银行存管账户对用户不可见,通过互金公司账户的数字代表用户可提取的津贴,,用户将对互金公司账户提出提现请求,即使银行返回消息出错而造成了重复发放津贴的情况,互金公司账户也只体现可实际互金公司允许提取的金额,避免将银行多发放的津贴发放给用户。

本实施例的一种无资损的资源发放方法,通过对用户建立双账户,并统一对双账户进行管理,能够有效地避免发生消息返回不可靠而造成的资源损失。

实施例二

本发明实施例二提供一种资源发放方法。本实施例是在实施例一提供的技术方案的基础上,使用分布式消息中间件发送向用户发放资源的消息请求,并对第二账户进行监控。

如图2所示,本实施例中的资源发放方法,可以包括:

步骤200,使用分布式消息中间件发送向用户的第一账户发放资源的消息请求,优选的,使用rocketmq分布式消息中间件;rocketmq是一个具有低延迟、高性能和可靠性、万亿级容量同时具备灵活的可伸缩性的分布式消和流处理平台。

步骤201,资源管理处收到向用户的第一账户发放资源的消息请求后,向用户的第一账户发放资源;

步骤202,接收资源管理处向用户第一账户的发放资源是否成功的消息反馈,如果资源管理处对第一账户发放成功,则进行步骤203,如果资源管理处对第一账户发放不成功,则自动触发重试系统,继续进行步骤200;

步骤203,使用分布式消息中间件发送发放成功的消息反馈,则停止向资源管理处发送发放资源的消息请求,并调用内部程序进行步骤204向第二账户发放资源。

步骤204,调用内部程序,向第二账户发放资源。此处将用简单的例子说明该步骤,内部程序为第二账户资源更新程序,内部程序可以设定更新的金额,比如此次活动,互金公司对用户发起的资源(津贴)为1000,当第一账户内的余额大于1000元时,第二账户只更新增加1000元。

步骤205,判断第二账户是否收到第一账户发放的资源,假如发放成功,则进行步骤206,否则进行步骤207。

步骤206,若发放成功,则设置第二账户的资源对用户可见,用户即可以查到第二账户内更新后的资源。

步骤207,若发放失败,则启动告警任务,由相应的责任人处理及核查发放过程。本实施例中,告警任务包括向责任人发出警报,通知责任人处理,责任人返回查看第一账户的资源情况,并核实转账程序。找到问题根源之后做出相应的处理,以保证发放的资源及时到位。

本实施例中,下面通过一个简单的例子说明本实施例的处理流程。互金公司向银行发出消息请求:向用户a的存管账户发放现金1000元,当银行发放成功后,发送“发放成功”的消息给互金公司,互金公司收到银行的消息反馈后,调用内部程序,更新用户的第二账户(即互金公司账户)的余额,当互金公司账户更新为余额增加1000元时,用户即可查看到余额更新的情况。但是,假如,互金公司收到银行发送“发放失败”的消息,将继续向银行发送通知,直到收到“发放成功”的消息为止,银行发送“发放失败”时,可能存在实际上银行发放成功的情况,此时用户a的存管账户内的余额就会大于1000元,此时,通过内部程序来保证用户的互金公司账户内只更新增加1000元。而银行在发送“发放成功”时,也可能存在实际上并没有发放成功的情况,那么此时用户的银行存管账户内的余额小于1000元,在更新程序启动时,则无法更新互金公司账户的余额,因此,将启动告警任务,由人工核查情况并处理,优选的,告警任务将在设定时间统一进行;尽管互金公司账户的余额没有更新,但用户仍能提取互金公司账户内显示的余额。本实施例中,通过使用分布式消息中间件和用户的双账户管理,以达到快速高效的向用户发放资源,同时通过双账户的管理,避免因消息不可靠而造成的资源损失。

实施例三

本发明实施例三提供一种资源发放方法。本实施例是在实施例二提供的技术方案的基础上,提供了双保险核验程序。如图2所示,本实施例中提供了一种资源发放方法,其中步骤300至步骤306的原理与实施例二的相似,此处不再重复赘述,本实施例中详细描述双保险核验程序,其步骤可以包括:

设置当第二账户收到资源后,即可对用户可见(步骤306),用户可以对第二账户的资源进行提取。因此进行

步骤307,接收用户发出的提取资源请求;

步骤308,在用户提取资源前/时,判断用户提取资源请求、第一账户的和第二账户的资源是否匹配;本实施例中,用户提取资源请求、第一账户的和第二账户的资源是否匹配是指用户提取资源请求的资源小于或等于第一账户或第二账户中较小的账户资源。

步骤309,判断是否匹配,假如匹配则进行步骤310,假如不匹配,则进行步骤312。

举个简单的例子说明本实施例的步骤308和步骤309。

例如用户a的银行存管账户的流水情况如下:进账1000元,进账1000元(共2次进账),余额2000元。互金公司账户的更新情况如下:更新增加1000元,余额1000元,用户提取请求:1000元。用户提取请求1000元,第一账户余额2000元,第二账户显示余额1000元,第二账户显示余额1000元与第一账户余额2000元相比,第二账户显示余额较小,而用户提取请求1000元等于第二账户显示余额1000元,则判定银行存管账户和互金公司账户的资源匹配。

例如用户b的银行存管账户的流水情况如下:进账1000元,余额1000元。互金公司账户的流水显示情况如下:增加1000元,增加1000元,余额2000元,用户提取请求为2000元。第一账户与第二账户相比,第一账户的余额较小,而用户提取请求大于第一账户的余额请求,则判定银行存管账户和互金公司账户的资源(资金流水)不匹配。

步骤310,用户提取资源。

步骤312,启动异步对账任务。举例说明本实施例的异步对账任务,可由人工完成,也可以由系统调用程序完成,异步对账任务是对资源管理系统定时对出现异常的订单执行对账任务,对账任务包括对第一账户和第二账户的入账、出账、余额进行核验。

本实施例中,当第二账户的资源发放失败时,启动告警任务(步骤311),责任人收到告警任务后,启动步骤312异步对账任务。

实施例四

本发明实施例四提供了一种无资损的资源发放装置。图4为本发明实施例四提供的无资损的资源发放装置的结构框图。如图4所示,本实施例中的装置,可以包括:

消息模块400:用于发送或接收消息请求;

资源发放模块401:用于当消息模块接收到已成功向用户的第一账户发放资源的消息后,向用户的第二资源账户发放资源;

重试模块402:用于当消息模块接收到未成功向用户的第一账户发放资源的消息后,触发重试机制。

本实施例中的无资损的资源发放装置,可以用于执行上述任一实施例所述的资源发放方法,其具体实现原理可以参见上述任一实施例,此处不再赘述。

本实施例中的无资损的资源发放装置,通过为用户设置双账户,发送向用户的第一账户发放资源的消息请求;接收用户的第一账户的资源是否已发放的消息反馈;若发放成功,则向用户的第二账户发放资源;若未发放成功,则自动触发重试机制直至接收到资源已发放成功的消息,保证资源顺利发放至客户,并且保证无资损。

进一步地,本实施例中的无资损的资源发放装置,还包括判断模块403,用于判断用户的第一账户和第二账户的资源信息;

第一处理模块404:用于当用户的第二账户已收到资源,将第二账户的资源设置为对用户可见;

第二处理模块405:用于当用户的第二账户未收到资源,触发告警任务。

进一步地,第一处理模块404还用于:设置用户的第二账户可提取资源,相应的,判断模块403用于判断第一账户和第二账户的资源信息是否匹配。

进一步地,第二处理模块405还用于:启动异步核对任务,相应的,判断模块403用于判断第一账户和第二账户的资源信息是否匹配。

实施例五

本发明实施例五提供了一种电子设备,包括存储器和处理器存储器用于存储一条或多条计算机指令,其中,一条或多条计算机指令被所述处理器执行以实现上述任一实施例所述的无资损的资源发放方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使计算机执行时可以实现上述任一实施例所述的无资损的资源发放方法。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机设备中的执行过程。

计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,本实施例仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。

处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可以是计算机设备的内部存储单元,例如计算机设备的硬盘或内存。存储器也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器还可以用于暂时地存储已经输出或者将要输出的数据。

本发明实施例还提供了一种存储有计算机程序的计算机可读存储介质,,计算机程序使计算机执行时实现上述任一项的无资损的资源发放方法。

本实施例在使用分布式消息中间件和双账户的基础上,使用提现双保险核验程序,进一步保证避免重复向用户发放资源及用户重复提现的问题,保证互金公司的资源不受损。

以上详细描述了本发明的具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1