账户追款方法、装置、服务器及可读存储介质
技术领域
本说明书实施例涉及互联网金融技术领域,尤其涉及一种账户追款方法、装置、服务器及可读存储介质。
背景技术
当前,在线支付应用的行业越来越广泛,例如电商、航旅、数娱、在线教育、投资理财、大宗交易、基金保险,网贷等等。第三方支付是指具备一定实力和信誉保障的独立机构,促成交易双方进行交易的网络支付模式。第三方支付平台支持用户通过银行卡等渠道给用户的客户余额账户充值,实际资金会从用户的银行卡流向到第三方支付机构在银行开具的备付金账户。用户充值的余额可在网络购物中消费,或由用户发起提现到银行卡账户。第三方支付平台因系统差错、业务异常或漏洞等情况,导致余额异常增加,属于用户不当获利,按照相关的服务协议和法律条款,第三方支付机构有权采取更正差错,扣划款项等适当纠正措施,或应法院等政府机构要求,需要对用户的账户资产等进行冻结和扣划。
发明内容
本说明书实施例提供及一种账户追款方法、装置、服务器及可读存储介质。
第一方面,本说明书实施例提供一种账户追款方法,包括:确定待追款用户的账户余额及追款金额;判断所述账户余额是否大于或等于追款金额:若是,从账户余额中冻结追款金额;若否,冻结所述账户余额,并确定预冻结金额为追款金额与账户余额的差值,当用户入账操作时,从入账金额中冻结所述预冻结金额。
第二方面,本说明书实施例提供一种账户追款平台装置,包括:金额确定单元,用于确定待追款用户的账户余额及追款金额;判断单元,用于判断所述账户余额是否大于或等于追款金额:足额追款单元,用于当账户余额是大于或等于追款金额时,从账户余额中冻结追款金额;预冻结单元,用于当账户余额是小于追款金额时,冻结所述账户余额,并确定预冻结金额为追款金额与账户余额的差值,当用户入账操作时,从入账金额中冻结所述预冻结金额。
第三方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述账户追款方法的步骤。
第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述账户追款方法的步骤。
本说明书实施例有益效果如下:
本说明书实施例提供的账户追款方法,通过判断账户余额与追款金额多少,当不能足额冻结时,进行资金预冻结,并在资金入账时完成冻结,从而可提高追款效率。
本说明书实施例通过改进账务冻结模式,提前预冻结用户资金,从而在账务层面提前控制资金,避免资金流出,提升追款的成功率;当用户账户有资金入账时,才调控账务系统进行追款,可避免轮询调用账务系统对账务交易的影响,避免追款同步发起影响账务系统性能。
附图说明
图1为本说明书实施例账户追款场景示意图;
图2为本说明书实施例第一方面提供的账户追款方法流程图;
图3为本说明书实施例提供的资金冻结及预冻结流程图;
图4为本说明书实施例提供的账户资金变动流程图;
图5为本说明书实施例第二方面提供的追款平台装置内部结构示意图;
图6为本说明书实施例第三方面提供的服务器结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
首先对本说明书实施例涉及的技术术语解释如下。
第三方支付平台:第三方支付是指具备一定实力和信誉保障的独立机构,促成交易双方进行交易的网络支付模式。第三方支付平台通常有自己的一套客户/账户/账务系统,用于记录各个用户/客户/商户的基本信息、账户信息、账务信息。一个典型的第三方支付平台包括用于收单、下发的交易系统,以及用于记账等账务处理的账务系统。
余额冻结:第三方支付平台对用户的账户余额进行冻结,用户在此期间无法提现和消费这部分余额。
可用余额:用户实际能提现和消费的余额。
账户表:一个用户一类账户在账户表中只有一条明细记录这个用户这类账户的账号、当前余额、冻结金额等信息。
流水表:记录账户的金额变化的过程,包括了流入金额、流出金额、冻结金额、解冻金额、记账时间等关键信息。一个账户明细对应了多个流水明细,理论上每次账户的流入流出,冻结解冻都会记录一次账户流水。
如前分析的,第三方支付平台因系统差错、业务异常或漏洞等情况,导致余额异常增加,属于用户不当获利,按照相关的服务协议和法律条款,第三方支付机构有权采取更正差错,扣划款项等适当纠正措施,或应法院等政府机构要求,需要对用户的账户资产等进行冻结和扣划。第三方支付机构通常会通过一个后台系统或模块对这部分用户的余额发起追款。但是实际情况部分用户在追款前将这部分余额发起提现或者消费,导致余额不足追款失败。就需要追款系统具备持续追款的能力,在用户重新充值时发起冻结和扣划。
参见图1,为本说明书实施例提供的一个账户追款场景示意图。该场景示出了追款平台10、账务系统20和交易系统30。其中,账务系统20和交易系统30可位于一个第三方支付平台中,账务系统20用于记录账务相关信息,其中维护两个比较重要的表:账务表和流水表;交易系统30为用户提供交易平台,例如消费、转账等操作。追款平台10可独立于第三方支付平台,例如是一个后台服务器,或者,也可以是第三方支付平台中的一个功能模块,本说明书实施例对此不做限定。
本说明书实施例中,追款平台10通过查询账务系统30,可获知待追款用户的账户信息,包括账户表和流水表等。追款平台10通过比较待追款用户的账户余额与追款金额的多少,如果账户余额足够扣除追款金额,则控制直接从账户余额中冻结追款金额,如果账户余额不足以扣除追款金额,则首先冻结当前账户余额,然后再确定预冻结金额,等到待追款用户有资金入账时,再做其余部分金额的冻结。
第一方面,本说明书实施例提供一种账户追款方法,请参考图2,该账户追款方法包括步骤S201-S204。
S201:确定待追款用户的账户余额及追款金额。
例如,在图1所示的场景示意图中,第三方支付平台的账务系统会维护有账户表和流水表,其中,账户表用以记录一个用户一类账户的账号、当前余额、冻结金额等信息,流水表用以记录账户的金额变化的过程,包括了流入金额、流出金额、冻结金额、解冻金额、记账时间等关键信息。
步骤S201中获取待追款用户的账户余额及追款金额,可以理解是追款平台从第三方支付平台获取的。具体的,比如,追款平台通过访问第三方支付平台的账务系统,查询账务系统中的账户表和流水表,可获知待追款用户的账户余额及追款金额。再比如,追款平台可以通过获取并解析账务文件的方式,获得账户表和流水表。还如,通过数据捞取的方式,从第三方支付平台进行数据捞取,从而得到账户表和流水表。其中,追款金额是指需要追回款项的金额,即后续需要冻结的金额。
S202:判断账户余额是否大于或等于追款金额,如果账户余额大于或等于追款金额,则执行步骤S203,直接进行资金冻结,如果账户余额小于追款金额,则执步骤S204-S205,通过资金预冻结的方式在用户入账操作时进行资金冻结。
追款平台在确定账户余额和追款金额之后,对二者进行大小比较。如果账户余额大于追款金额,说明账户余额足够扣除追款金额,则直接冻结这部分追款金额即可,否则,说明账户余额不足以扣除追款金额,则需要启动预冻结方式。
S203:从账户余额中冻结追款金额。
如果账户余额大于或等于追款金额,说明账户余额足够扣除追款金额,则直接冻结这部分追款金额即可,这时,已经完成资金追款。
在确定追款完成之后,需要对账务系统维护的账户表和流水表进行更新,从而记录记录账户可用余额为账户余额扣除追款金额的剩余金额,即账户可用余额=账户余额-追款金额,并更新追款状态为追款完成。当追款状态为追款完成时,该对用户的交易进行解冻,即该用户可正常进行消费或转账等交易。
S204:冻结账户余额,并确定预冻结金额为追款金额与账户余额的差值。
如果账户余额小于追款金额,说明账户余额不足够扣除追款金额,这时,首先需要将当前账户余额进行冻结,即追回一部分金额,并对缺少的那部分金额进行资金预冻结。
为了对缺少那部分金额进行资金预冻结,需要确定这部分金额的具体数量。可以理解,在账户余额小于追款金额的情况下,预冻结金额为追款金额与账户余额的差值,即:
预冻结金额=追款金额-账户余额
举个例子,如果账户余额为60元,追款金额为100元,则预冻结金额=100-60=40元。
S205:当用户入账操作时,从入账金额中冻结预冻结金额。
S205:监控账户余额变动。
为了完成剩余部分资金的冻结,需要监控用户账户余额变动,当用户在交易系统进行入账操作时,即有资金流入账户时,对缺少那部分资金进行冻结,从而完成追回全部追款金额。追款平台获知用户账户余额变动的方式,可以是由账务系统在用户的账户余额有变动时,向追款平台提供变动信息;当然也可以由追款平台主动监控账务余额变动。
其中,步骤S205可循环执行,直至追款完成。
在一种实现方式中,为了避免追款平台频繁向账务系统进行查询而引起系统性能下降,可以由账务系统在有用户入账操作时,向追款平台发起消息,告知用户入账操作事件。
在追款平台,可以通过判断预冻结金额的大小,从而在得知用户入账操作事件时,根据所维护的预冻结金额的大小,来确定如何进行剩余部分资金的冻结。
比如,追款平台在得知用户入账操作事件时,判断预冻结金额的大小,如果预冻结金额大于0,即说明当前还未完成追款,需要确定入账金额是否足够抵扣预冻结金额,如果足够,则从入账金额中冻结预冻结金额,并更新预冻结金额为0,如果不足够,冻结当前入账金额,并减少预冻结金额;
如果预冻结金额等于0,确定追款完成。
仍举上面的例子,追款金额为100元,已对原账户余额60元进行了冻结,则预冻结金额=100-60=40元。此时,如果用户有入账操作,首先查看预冻结金额,发现预冻结金额40大于0,则说明追款未完成,需要确定入账金额是否足够抵扣预冻结金额。假设当前入账50元,大于40元,足够抵扣预冻结金额,则从这50元中冻结40元,并更新预冻结金额为0,追款完成。假设当前入账30元,小于40元,不足够抵扣预冻结金额,则将这30元冻结后,更新预冻结金额为40-30=10元,这10元仍未完成追款,可在用户后续入账操作时进一步追款。
可见,预冻结金额大小不但表明剩余冻结金额的大小,还表明追款是否完成,即,当预冻结金额大于0时,说明追款未完成,当预冻结金额等于0时,说明追款完成了。
在当前预冻结金额大于0,即追款未完成的情况下,如果用户发起消费或转账操作,则可拒绝交易。
在当前预冻结金额等于0,即追款完成的情况下,需要更新用户的账户表和流水表,从而记录账户可用余额为从账户余额与入账金额之和中扣除追款金额的剩余金额,即:账户可用余额=账户余额+入账金额-追款金额,并更新追款状态为追款完成。其中,账户可用余额为账户当前余额,账户金额为原账户金额,仍如前面的例子,账户余额60元,入账50元,追款金额100元,则账户可用余额=60+50-100=10元。
下面以图3资金冻结及预冻结流程图以及图4账户资金变动流程图,对本说明书实施例提供的账户追款方法进行示例性说明。
图3示出的资金冻结及预冻结流程图中,主要涉及追款平台与账务系统及追款账户之间的交互。
步骤1:追款平台通过上传文件、数据捞取等方式初始化追款明细,包括待追款用户的账号、追款金额及追款状态信息。
步骤2:循环追款明细,取一条当前用户的追款明细。
步骤3:调用账务系统查询当前用户账户余额。
步骤3.1:账户系统从追款账户获知账户余额。
步骤4-7:足额冻结。
步骤4:如果:追款金额<=账户余额,追款平台调用账务系统发起普通的足额冻结。步骤4.1:账务系统更新账户,冻结金额增加,步骤4.2:记录足额冻结明细:账户可用余额=账户余额-追款金额,接口同步返回追款平台,追款状态信息更新为冻结成功,
步骤5:更新已冻结金额。
步骤6:追款平台发起解冻并扣划。步骤6.1已冻结金额划扣。
步骤7:更新追款状态为追款完成。
步骤8:不足额冻结(预冻结)。步骤8.1:更新账户预冻结金额。步骤8.2:记录预冻结流水。
如果:追款金额>账户余额,当前用户的账户余额不足,通常是无法完全冻结的。此处进行虚拟的预冻结,例如,可在账户表新增超额冻结金额字段记录下述关系:账户可用余额=账户余额-冻结金额-预冻结金额。
其中,冻结金额是指实际已经冻结成功的那部分金额。
例如,需追款100元,此时用户只有60元余额,则冻结金额为60元,预冻结金额为40元。账户可用余额=60-60-40=-40元。此处可以理解,当预冻结金额大于0时,即追款未完成时,账户可用余额为负数,当追款完成时,账户可用余额为0或正数。
图4示出了账户资金变动流程图,主要涉及交易系统、账务系统与追款平台之间的交互。
步骤1:用户发起账户充值,账务系统记账。
步骤1.1:更新账户可用余额(用户余额):如果预冻结金额大于0(追款未完成),账户可用余额增加,预冻结金额减少,冻结金额增加。如果预冻结金额等于0(追款完成),账户可用余额增加。
步骤1.2:更新冻结流水:记录入账流水和冻结流水用户发起提现或支付,检查可用余额是否大于和等于交易金额,如果小于则交易失败。
步骤1.3:账务系统向追款平台发送异步冻结消息。追款平台接收冻结消息,判断当前追款明细预冻结金额是否等于0,如果等于0,则资金冻结完成。
步骤1.3.1:追款平台更新已冻结金额,更新追款明细状态。
此处的异步,可以理解为发送消息后无需等待所有消息接收方回应了之后才执行后面的步骤。监听账务入账冻结流水的系统有很多,账务系统不关心其他系统的处理,因为和它自身的记账过程没有强关联,通过异步通知的方式避免阻塞和影响账务系统的记账过程。
步骤2:用户在交易系统发起消费/转账操作。步骤2.1:账务系统检查可用余额是否足够进行消费/转账操作。步骤2.2:如果余额不足,账务系统向交易系统返回错误提示:可用余额不足。
步骤3:基于用户进行的余额充值,追款平台发起解冻并扣划,账务系统记账,余额减少,冻结金额减少。
步骤4:追款完成。
本说明书实施例通过改进账务冻结模式,提前预冻结用户资金,从而在账务层面提前控制资金,避免资金流出,提升追款的成功率;当用户账户有资金入账时,才调控账务系统进行追款,可避免轮询调用账务系统对账务交易的影响,避免追款同步发起影响账务系统性能。
第二方面,基于同一发明构思,本说明书实施例提供一种账户追款平台装置,请参考图5,账户追款平台装置包括:
金额确定单元501,用于确定待追款用户的账户余额及追款金额;
判断单元502,用于判断所述账户余额是否大于或等于追款金额:
足额追款单元503,用于当账户余额是大于或等于追款金额时,从账户余额中冻结追款金额;
预冻结单元504,用于当账户余额是小于追款金额时,冻结所述账户余额,并确定预冻结金额为追款金额与账户余额的差值,当用户入账操作时,从入账金额中冻结所述预冻结金额。
在一种可选方式中,所述金额确定单元501包括:
表单获取子单元5011,用于通过账务系统查询、账务文件解析或账务数据捞取方式,获取待追款用户的账户表和流水表;
查询子单元5012,用于查询所述账户表和流水表,确定所述用户的账户余额以及追款金额。
在一种可选方式中,还包括:
追款状态更新单元505,用于确定追款完成;并更新所述用户的账户表和流水表,从而记录账户可用余额为所述账户余额扣除所述追款金额的剩余金额,并更新追款状态为追款完成。
在一种可选方式中,所述预冻结单元504包括:
预冻结金额判断子单元5041,判断所述预冻结金额的大小:
预冻结执行子单元5042,如果所述预冻结金额大于0,确定入账金额是否足够抵扣所述预冻结金额,如果足够,从入账金额中冻结所述预冻结金额,并更新所述预冻结金额为0,如果不足够,冻结当前入账金额,并减少所述预冻结金额;
追款完成确定子单元5043,用于当所述预冻结金额等于0时,确定追款完成。
在一种可选方式中,还包括:
交易拒绝单元506,用于在追款未完成情况下,当用户发起消费或转账操作时,拒绝账户交易。
在一种可选方式中,还包括:
追款状态更新单元505,用于更新所述用户的账户表和流水表,从而记录账户可用余额为从所述账户余额与入账金额之和中扣除所述追款金额的剩余金额,并更新追款状态为追款完成。
第三方面,基于与前述实施例中账户追款方法的发明构思,本发明还提供一种服务器,如图6所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文所述账户追款方法的任一方法的步骤。
其中,在图6中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口606在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。
第四方面,基于与前述实施例中账户追款方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述账户追款方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。