资源转移方法、装置、电子设备及存储介质与流程

文档序号:20510979发布日期:2020-04-24 18:31阅读:135来源:国知局
资源转移方法、装置、电子设备及存储介质与流程

本申请实施例涉及互联网技术领域,特别是涉及一种资源转移方法、装置、电子设备及计算机可读存储介质。



背景技术:

发放优惠券或奖励积分等虚拟资源是互联网平台导入用户流量的一种重要营销手段,不同业务线会给用户发放相应数量的虚拟资源,以刺激用户在互联网平台的各业务线下单。由于现有技术中,业务线之间独立发放虚拟资源,并管理用户的资源使用,用户账户中的虚拟资源数量无法统一进行管理,进而导致用户侧的虚拟资源数据与业务线侧的虚拟资源数据不一致。

可见,现有技术中的虚拟资源转移方法至少存在存储的虚拟资源数据不准确的缺陷。



技术实现要素:

本申请实施例提供一种资源转移系统,有助于提升资源转移过程中存储的资源数据的准确性。

第一方面,本申请实施例提供了一种资源转移系统,包括:

至少一个客户端、与所述至少一个客户端对应的至少一个服务端,以及系统服务器,所述系统服务器进一步包括第一资源服务模块和第二资源转移模块:其中,

所述至少一个客户端,用于生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端;

所述服务端,用于接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用;

所述第一资源服务模块,用于接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量;

所述第一资源服务模块,还用于开始预先创建的用于执行多数据库写操作的第一公共事务,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务;以及,

响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务;

其中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息。

第二方面,本申请实施例提供了一种资源转移方法,应用于上述的资源转移系统,所述方法包括:

在所述客户端处生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端;

在所述服务端,接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用;

在所述系统服务器处,通过所述第一资源服务模块接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量;

通过所述第一资源服务模块,开始预先创建的用于执行多数据库写操作的第一公共事务,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务;以及,

响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务;

其中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息。第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的资源转移方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的资源转移方法的步骤。

本申请实施例公开的资源转移系统,包括至少一个客户端、与所述至少一个客户端对应的至少一个服务端,以及系统服务器,所述系统服务器进一步包括第一资源服务模块和第二资源转移模块:其中,所述至少一个客户端,用于生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端;所述服务端,用于接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用;所述第一资源服务模块,用于接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量;所述第一资源服务模块,还用于开始预先创建的用于执行多数据库写操作的第一公共事务,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务;以及,响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务;其中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息,有助于提升资源转移过程中存储的资源数据的准确性。

附图说明

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

图1是本申请实施例一的资源转移系统结构示意图;

图2是本申请实施例二的资源转移方法流程图之一;

图3是本申请实施例二的资源转移方法流程图之二;

图4是本申请实施例二的资源转移方法的一个应用实例示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

本申请实施例公开的一种资源转移系统,如图1所示,所述系统包括:至少一个客户端101、与所述至少一个客户端101对应的至少一个服务端102,以及系统服务器103,所述系统服务器103进一步包括第一资源服务模块1031和第二资源转移模块1032。

其中,所述至少一个客户端101可以对应不同的业务线,每个业务线预设有相应的服务端102。对与每个业务线,该业务线的所述客户端101通过互联网与该业务线的服务端102连接,所述客户端101根据用户的操作生成信息获取请求,获取该业务线的产品、营销等业务数据,并在所述客户端101本地展示给用户。

本申请的实施例中,所述至少一个客户端101,还用于生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端102。本申请实施例中所述的第一资源为虚拟资源,如优惠券、积分、立减金额等。本申请的一些实施例中,所述至少一个服务端102可以设置在所述系统服务器103上。

例如,当用户通过电子设备上的客户端101的产品界面浏览业务线a的产品时,客户端101可以主动为该用户申请第一资源。具体的,客户端101获取当前用户的用户标识,结合当前业务线的标识生成第一资源发放请求,并将所述第一资源发放请求发送给相应的所述服务端102。其中,所述第一资源发放请求中携带第一资源提供方和第一资源接收方的信息,以及向所述第一资源接收方发放第一资源的发放数量。本申请的一些实施例中,所述第一资源提供方的信息通过当前业务线的标识表示,所述第一资源接收方的信息通过当前用户的用户标识表示。

之后,所述客户端101将生成的虚拟资源发放请求,通过网络通信发送至相应的服务端102。

相应的,所述服务端101,用于接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用。所述服务端101在接收到所述客户端发送的所述第一资源发放请求之后,根据所述第一资源发放请求中携带的第一资源提供方和第一资源接收方的信息,以及向所述第一资源接收方发放第一资源的发放数量作生成预设的第一资源发放接口的调用参数,并调用所述第一资源发放接口。以立减金(即第一资源)发放场景为例,业务线开展营销活动,用户参与业务线的营销活动,根据活动规则赢取一定金额的立减金,业务线服务端将调用第一资源服务模块1031提供的第一资源发放接口,发起立减金的发放指令。在调用第一资源发放接口时,传入的参数可以包括:发放数量、用户标识、第一资源使用期限、用户特性、第一资源提供方的第二资源账户等。

所述系统服务器103上预设的所述第一资源服务模块1031接收对所述第一资源发放接口的调用。

第一资源服务模块1031主要管理与业务应用场景的对接,第一资源的使用规则与业务方发放第一资源的逻辑,实现第一资源(如立减金)与第二资源(如营销资金)的对等逻辑。

所述第一资源服务模块1031中包括多个子业务模块,如第一资源发放规则确定子模块、第一资源发放业务子模块、第一资源有效期管理子模块等,以保证第一资源发放和使用逻辑正常。

所述第一资源服务模块1031,用于接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器103处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量。本申请的一些实施例中,所述第一资源服务模块1031通过所述第一资源发放接口的调用参数,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量。

进一步的,所述第一资源服务模块1031根据第一资源提供方在注册时,预先配置的第一资源提供方信息,或者根据预先配置的第一资源提供方信息和第一资源接收方信息,按照预设的第一资源发放策略,确定是否执行所述调用指定的第一资源发放,以及第一资源的发放数量。本申请的一些实施例中,所述第一资源提供方信息为与业务线匹配的业务场景信息,例如可以包括:预计发放数量、第二资源支付账号、第一资源发放周期、第一资源有效期等,以及,潜在第一资源接收方的用户画像等。例如。所述第一资源服务模块1031根据所述第一资源发放接口的调用参数确定第一资源提供方和第一资源接收方,然后,根据所述第一资源服务模块1031在所述系统服务器103处预先存储的配置信息确定所述第一资源发放接口的调用时间是否与所述第一资源发放周期匹配,若匹配,则确定第一资源的发放数量为调用参数中携带的发放数量。

第二资源转移模块1032管理所有业务线与第二资源(如营销资金)的转账和存储。

本申请的一些实施例中,所述第一资源服务模块1031,还用于在所述系统服务器103处同时执行第一资源添加操作和第二资源转移操作;其中,所述第一资源添加操作包括:由所述第一资源服务模块执行向所述第一资源接收方的第一资源账户添加所述发放数量的第一资源;所述第二资源转移操作包括:由所述第二资源转移模块执行从所述第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移。

当业务线发放第一资源(如立减金)时先经过所述第一资源服务模块1031,确认业务线是否可以发放第一资源,发放的第一资源使用期限与具体的数量是多少,之后,由所述第一资源服务模块1031调用第二资源转移模块1032实时划转第二资源(即真实的营销资金),当第二资源划转成功,才会为用户进行虚拟账户的加币记账。所述第一资源服务模块1031要保障第一资源记账与第二资源转移同步并且状态一致,如果不一致需要发起重新划转或者原路退回,保证第一资源和第二资源转移的状态一致。例如,所述第一资源服务模块1031会同步为目标用户立减金账户进行记账并调用支付体系账户划转营销资金,保证两次操作状态相等,同时提交入账事务,入账事务操作成功之后,为业务线服务端返回成功指令。

如果由于系统交互或者网络抖动原因造成,第一资源账户记账与第二资源账户状态可能会不一致,需要由第一资源服务模块1031发起对账功能,实现两边记账账户(如立减金账户、与真实营销资金账户)的金额相等。

本申请的一些实施例中,所述第一资源服务模块1031,还用于在所述系统服务器103处同时执行第一资源添加操作和第二资源转移操作,例如,所述第一资源服务模块1031用于开始预先创建的用于执行多数据库写操作的第一公共事务,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务;以及,响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务;其中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息。其中,所述第一资源添加操作包括:由所述第一资源服务模块执行向所述第一资源接收方的第一资源账户添加所述发放数量的第一资源,并存储相应的操作记录;所述第二资源转移操作包括:由所述第二资源转移模块执行从所述第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移,并存储相应的操作记录。本申请实施理中的多数据库包括:虚拟资源数据库(如存储第一资源接收方的虚拟资源账户信息的数据库和存储虚拟资源操作记录的数据库)和真实资源数据库(如存储第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移操作的操作记录的数据库)。

本申请的一些实施例中,所述在所述系统服务器处同时执行第一资源添加操作和第二资源转移操作的步骤,包括:基于事务机制,在所述系统服务器处同时执行第一资源添加操作和第二资源转移操作。进一步的,基于事务机制,在所述系统服务器处同时执行第一资源添加操作和第二资源转移操作,包括:开始预先创建的第一公共事务,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务。其中,所述执行第一资源添加操作包括:由所述第一资源服务模块执行向所述第一资源接收方的第一资源账户添加所述发放数量的第一资源的第一资源添加操作,并存储相应的操作记录(即存储向所述第一资源接收方的第一资源账户添加所述发放数量的第一资源的操作记录);所述执行第二资源转移操作包括:由所述第二资源转移模块执行从所述第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移操作,并存储相应的操作记录(即存储从所述第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移的操作记录);响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务;其中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息。

事务机制是数据库操作特有的术语,单个逻辑工作单元执行的一系列操作,同步发生数据更新时,防止数据的不一致。现有技术中事务机制通常被应用于对同一个数据库的写操作中。例如,在对一个数据库中执行不同的写入操作时,要么所有写入操作都成功,否则不会用就更新数据库中的数据。本申请实施例中对不同的数据库执行输入写入操作,因此,在实施过程中,基于事务机制,对不同数据库写操作进行进一步封装,定义了公共事务机制。

通过建立公共事务机制,由第一资源服务模块1031,统一把控第一资源转移的记账准确性,与第二资源转移的记账准确性,通过基础原则,两个账套内的记账,同时成功提交第一公共事务,如果单一账套内记账成功,进行数据回滚,根据错误原因对数据发起重试,或返回失败提示。

本申请的一些实施例中,可以定义一个第一公共事务,所述第一公共事务中定义对应第一资源添加操作的执行结果的第一状态变量和对应第二资源转移操作的执行结果的第二状态变量;并定义执行第一资源添加操作和第二资源转移操作的语句,执行第一资源添加操作时,第一资源添加操作将修改所述第一状态变量,执行第二资源转移操作时,第二资源转移操作将修改所述第二状态变量;之后,设置第一状态变量和第二状态变量判断语句,在第一状态变量和第二状态变量均指示相应操作返回成功时提交该第一公共事务,在第一状态变量和第二状态变量未同时指示相应操作返回成功时,回滚所述第一资源添加操作和所述第二资源转移操作。

本申请的另一些实施例中,在所述第一公共事务中添加第一事务和第二事务,使得所述第一公共事务在处理过程中将同时开始第一事务和第二事务。其中,所述第一事务为执行第一资源添加操作的事务,所述第二事务为执行第二资源转移操作的事务。在所述第一公共事务中,进一步判断第一事务和第二事务的执行结果,并在所述第一事务和所述第二事务同时执行成功的情况下,提交所述第一事务和所述第二事务,固化所述第一事务和所述第二事务执行的操作,之后,提交所述第一公共事务,向第一资源服务模块1031输出指示执行第一资源添加操作和第二资源转移操作成功的信息。如果第一事务和第二事务未同时执行成功(即第一资源添加操作和第二资源转移操作未同时执行成功),则回滚所述第一事务和所述第二事务,即回滚执行的第一资源添加操作和第二资源转移操作。

进一步的,还可以预先设置重试条件,当第一资源添加操作和第二资源转移操作未同时执行成功时,可以根据未执行成功的操作的返回结果,确定是否重试执行第一资源添加操作和第二资源转移操作。其中,重试条件可以包括:写入错误、系统忙等。例如,当第一资源添加操作的返回结果指示写入错误时,可以重新执行一次第一资源添加操作和第二资源转移操作,以减少由于网络抖动导致的资源转移失败率。再例如,当第二资源转移操作的返回结果指示转出账户余额不足时,则返回结果不符合预设的重试条件。

本申请的一些实施例中,执行第一资源添加操作时,所述第一资源服务模块1031执行向所述第一资源接收方的第一资源账户添加所述发放数量的第一资源的第一资源添加操作,并在所述系统服务器103处存储所述第一资源添加操作对应的资源添加记录。其中,所述第一资源添加操作可以通过调用第一资源账单数据库的写入接口实现。

本申请的一些实施例中,第一公共事务在处理过程中,通过调用所述第二资源转移模块1032提供的第二资源转移接口,开始所述第二事务,所述第二事务在处理过程中执行第二资源转移。所述第二资源转移接口的调用参数包括:所述第一资源提供方的第二资源账户和资源管理平台的第二资源账户,以及转移的第二资源数量。其中,第二资源数量等于第一资源的转移数量,所述第一资源提供方的第二资源账户信息由所述第一资源服务模块1031根据所述系统服务器103中存储的,预先配置的第一资源提供方信息确定;所述资源管理平台的第二资源账户根据所述系统服务器103中存储的配置信息确定。在执行第二资源转移时,由所述第二资源转移模块执行从所述第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移操作,并存储相应的操作记录,即存储所述第二资源转移操作对应的资源转移的操作记录。其中,所述第二资源转移操作可以通过调用第二资源账单数据库的写入接口和预设资金支付系统的接口实现。

本申请的一些实施例中,所述第二资源转移模块1032执行第二资源转移的具体操作参见现有技术中支付业务后台的资金转移具体实施方式,本申请实施例中不再赘述。

所述开始预先创建的第一公共事务之后,还包括:所述第一公共事务在处理过程中,响应于所述第一事务和所述第二事务未同时执行成功,回滚所述第一事务和所述第二事务,并返回指示同时执行第一资源添加操作和第二资源转移操作失败的信息。例如,当执行第一资源添加操作成功,但是执行第二资源转移操作失败,则所述第一公共事务将回滚所述执行第一资源添加操作和所述第二资源转移操作,使得用户的第一资源账户中的资源和该账户的账单恢复到未执行当前次第一资源添加操作的状态,使得第一资源提供方的第二资源账户、资源管理平台的第二资源账户中的资源和相应账户的账单恢复到未执行当前次第二资源转移操作的状态。

本申请的一些实施例中,所述响应于所述第一事务和所述第二事务未同时执行成功,回滚所述第一事务和所述第二事务的步骤之后,还包括:响应于所述第一事务和/或所述第二事务返回的执行失败原因满足预设重试条件,重新同时开始预设的执行第一资源添加操作的第一事务和执行第二资源转移操作的第二事务。为了规避网络抖动和写入操作的不稳定,本申请的一些实施例中,可以预先设置重试条件,并在所述第一事务和所述第二事务中任意一个事务返回的执行失败原因满足该预设重试条件时,重新启动所述第一事务和所述第二事务。其中,所述预设重试条件可以包括:重试次数、写操作失败、系统忙等。

本申请的一些实施例中,所述第一资源服务模块1031,还用于根据同时执行第一资源添加操作和第二资源转移操作的结果,向所述服务端输出对应所述第一资源发放请求的资源转移结果。在完成第一资源发放以及对应第一资源发放操作的第二资源转移之后,所述第一资源服务模块1031将向调用所述第一资源发放接口的所述服务端102返回指示第一资源发放成功的资源转移结果。

本申请的一些实施例中,用户可以使用账户中的第一资源。

下面结合用户使用账户中的第一资源的场景进一步描述系统各组成部分的实施方式。

所述至少一个客户端101,还用于生成第一资源使用请求,并通过电子设备将所述第一资源使用请求发送至相应的所述服务端102。例如用户在客户端101的收银台界面选择支付通道时,选择了立减金支付,并输入了使用金额,然后提交支付申请,则所述客户端101将根据用户的操作生成第一资源使用请求,所述第一资源使用请求中至少包括用户标识信息和支付数量。然后,客户端101将所述第一资源使用请求发送至对应的服务端102。

所述服务端102,还用于接收所述客户端101发送的所述第一资源使用请求,并将所述第一资源使用请求映射为对第一资源使用接口的调用。服务端102在接收到客户端101发送的所述第一资源使用请求之后,并将所述第一资源使用请求映射为对第一资源使用接口的调用。第一资源使用接口的调用参数包括:用户标识信息和支付数量。

所述第一资源服务模块1031,还用于接收对所述第一资源使用接口的调用,并根据对所述第一资源使用接口的调用确定第一资源支付方,以及第一资源的支付数量。系统服务器103处的所述第一资源服务模块1031在接收到对所述第一资源使用接口的调用之后,根据调用参数中的用户标识信息确定第一资源支付方、根据支付数量确定第一资源的支付数量。

所述第一资源服务模块1031,还用于在所述系统服务器103上执行将所述第一资源支付方的第一资源账户中所述第一资源减少所述支付数量的第一资源扣减操作。之后,所述第一资源服务模块1031对所述用户标识匹配的第一资源账户中所述第一资源进行扣减,并存储扣减记录。

所述第一资源服务模块1031,还用于响应所述第一资源扣减操作执行成功,在所述系统服务器103上存储对应所述第一资源扣减操作的记录。

本申请的一些实施例中,用户可以组合使用账户中的第一资源和第二资源。

下面结合用户组合使用账户中的第一资源合第二资源的场景进一步描述系统各组成部分的实施方式。

所述至少一个客户端101,还用于生成组合资源使用请求,并通过电子设备将所述组合资源使用请求发送至相应的所述服务端。例如用户在客户端101的收银台界面选择支付通道时,选择了立减金和银行卡账户组合支付,并输入了立减金使用金额和银行卡转账金额,然后提交支付申请,则所述客户端101将根据用户的操作生成组合资源使用请求,所述组合资源使用请求中至少包括:第一资源支付方(如用户标识信息)、第一资源的支付数量、第二资源支付账户、第二资源接收方信息、第二资源转移数量。然后,客户端101将所述组合资源使用请求发送至对应的服务端102。

所述服务端102,还用于接收所述客户端发送的所述组合资源使用请求,并将所述组合资源使用请求映射为对组合资源使用接口的调用。

所述第一资源服务模块1031,还用于接收对所述组合资源使用接口的调用,并根据对所述组合资源使用接口的调用确定第一资源支付方、第一资源的支付数量、第二资源支付账户、第二资源接收账户、第二资源转移数量。其中,第二资源接收账户根据在所述系统服务器户预先存储的注册信息和调用参数中携带的所述第二资源接收方信息确定。

所述第一资源服务模块1031,还用于在所述系统服务器1031处同时执行第一资源扣减操作和第二资源转移操作;其中,所述执行第一资源扣减操作包括:由所述第一资源服务模块执行从所述第一资源支付方的第一资源账户扣减所述支付数量的第一资源,并存储相应的操作记录(即从所述第一资源支付方的第一资源账户扣减所述支付数量的第一资源的操作记录);所述执行第二资源转移操作包括:由所述第二资源转移模块执行从所述第二资源支付账户向所述第二资源接收账户的第二资源转移,并存储相应的操作记录(即从所述第二资源支付账户向所述第二资源接收账户的第二资源转移的操作记录)。

本申请的一些实施例中,所述在所述系统服务器处同时执行第一资源扣减操作和第二资源转移操作的步骤,包括:基于事务机制,在所述系统服务器处同时执行第一资源扣减操作和第二资源转移操作,具体为:开始预先创建的用于执行多数据库写操作的第二公共事务,所述第二公共事务在处理过程中将同时开始预设的用于执行第一资源扣减操作的第三事务和用于执行第二资源转移操作的第四事务;响应于所述第三事务和所述第四事务同时执行成功,提交所述公共事务;其中,提交所述公共事务包括:提交所述第三事务和所述第四事务,以及,返回指示同时执行第一资源扣减操作和第二资源转移操作成功的信息。

公共事务机制如前所述,此处不再赘述。

具体实施时,可以首先定义一个第二公共事务,在所述第二公共事务中添加第三事务和第四事务,使得所述第二公共事务在处理过程中将同时开始第三事务和第四事务。其中,所述第三事务为执行第一资源扣减操作的事务,所述第四事务为执行第二资源转移操作的事务。在所述第二公共事务中,进一步判断第三事务和第四事务的执行结果,并在所述第三事务和所述第四事务同时执行成功的情况下,提交所述第三事务和所述第四事务,固化所述第三事务和所述第四事务执行的操作,之后,提交所述第二公共事务,向第一资源服务模块1031输出指示执行第一资源扣减操作和第二资源转移操作成功的信息。如果第三事务和第四事务未同时执行成功(即第一资源扣减操作和第二资源转移操作未同时执行成功),则回滚所述第三事务和所述第四事务,即回滚执行的第一资源扣减操作和第二资源转移操作。

进一步的,还可以预先设置重试条件,当第一资源扣减操作和第二资源转移操作未同时执行成功时,可以根据未执行成功的操作的返回结果,确定是否重试执行第一资源扣减操作和第二资源转移操作。其中,重试条件可以包括:写入错误、系统忙等。例如,当第一资源扣减操作的返回结果指示写入错误时,可以重新执行一次第一资源添加操作和第二资源转移操作,以减少由于网络抖动导致的资源转移失败率。再例如,当第二资源转移操作的返回结果指示转出账户余额不足时,则返回结果不符合预设的重试条件。

本申请的一些实施例中,执行第一资源扣减操作时,所述第一资源服务模块1031执行从所述第一资源支付方的第一资源账户扣减所述支付数量的第一资源的第一资源扣减操作,并存储所述第一资源扣减操作对应的操作记录。其中,所述第一资源扣减操作可以通过调用第一资源账单数据库的写入接口实现。

本申请的一些实施例中,第二公共事务在处理过程中,通过调用所述第二资源转移模块1032提供的第二资源转移接口,开始所述第四事务,所述第四事务在处理过程中执行第二资源转移。在执行第二资源转移时,由所述第二资源转移模块执行从所述第二资源支付账户向所述第二资源接收账户的第二资源转移,并存储相应的操作记录。其中,所述第二资源转移操作可以通过调用第二资源账单数据库的写入接口和预设资金支付系统的接口实现。

本申请的一些实施例中,所述第二资源转移模块1032执行第二资源转移的具体操作参见现有技术中支付业务后台的资金转移具体实施方式,本申请实施例中不再赘述。

所述开始预先创建的第二公共事务之后,还包括:所述第二公共事务在处理过程中,响应于所述第三事务和所述第四事务未同时执行成功,回滚所述第三事务和所述第四事务,并返回指示同时执行第一资源扣减操作和第二资源转移操作失败的信息。

本申请的一些实施例中,所述响应于所述第三事务和所述第四事务未同时执行成功,回滚所述第三事务和所述第四事务的步骤之后,还包括:响应于所述第三事务和/或所述第四事务返回的执行失败原因满足预设重试条件,重新同时开始预设的执行第一资源扣减操作的第三事务和执行第二资源转移操作的第四事务。

业务线的客户端还支持第一资源查询操作。

本申请的一些实施例中,所述至少一个客户端101,还用于根据用户的操作生成第一资源查询请求,并通过电子设备将所述第一资源查询请求发送至相应的所述服务端102,所述第一资源查询请求中携带所述用户的用户标识信息。例如,当用户通过业务线的客户端101执行账户余额查询或消费记录查询时,客户端101根据用户的操作生成第一资源查询请求,所述第一资源查询请求中包括用户标识信息,还可以包括用于指示查询余额或者消费记录的参数。

所述服务端102,还用于接收所述客户端101发送的所述第一资源查询请求,并将所述第一资源查询请求映射为对第一资源查询接口的调用。所述第一资源查询接口的调用参数包括用户标识信息,还可以包括用于指示查询余额或者消费记录的参数。

所述第一资源服务模块1031,还用于接收对所述第一资源查询接口的调用,并输出与所述用户标识信息匹配的所述第一资源账户的剩余第一资源数量和/或所述第一资源的操作记录。所述第一资源服务模块1031在接收到对所述第一资源查询接口的调用之后,根据所述用户标识信息确定第一资源账户,并根据调用参数输出所述第一资源账户的剩余第一资源数量和/或所述第一资源的操作记录。

本申请的一些实施例中,所述第一资源服务模块1031,还用于接收对资源对账请求,所述资源对账请求中携带目标第一资源提供方的标识信息和记录时间信息;然后,所述第一资源服务模块1031,还用于根据所述目标第一资源提供方的标识信息输出所述目标第一资源提供方的第二资源账户的与所述记录时间信息匹配的第二资源转移记录。其中,所述第二资源转移记录包括:由所述目标第一资源提供方的第二资源账户向所述资源管理平台的第二资源账户的第二资源转移记录。

本申请实施例公开的资源转移系统,包括:至少一个客户端、与所述至少一个客户端对应的至少一个服务端,以及系统服务器,所述系统服务器进一步包括第一资源服务模块和第二资源转移模块:其中,所述至少一个客户端,用于生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端;所述服务端,用于接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用;所述第一资源服务模块,用于接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量;所述第一资源服务模块,还用于开始预先创建的用于执行多数据库写操作的第一公共事务,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务;以及,响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务;其中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息,有助于提升资源转移过程中存储的资源数据的准确性。本申请实施例公开的资源转移系统,通过设置系统服务器,并在系统服务器中分层次设置第一资源服务模块和第二资源转移模块,将虚拟资源的接口服务、虚拟资源转移和真实资源转移隔离操作,首先进行资源转移的逻辑判断和处理,然后基于事务机制同步执行虚拟资源和真实资源转移,有效保证了用户虚拟资源和业务线的营销资金的同步划转,保障账户信息的一致性,提升了存储资源数量和资源转移操作记录等数据的准确性,进一步提升了资源转移操作的稳定性。

现有技术中,为了提升平台不同业务线之间的流量导入能力,不同业务线会下发通用优惠券或积分等虚拟资源,使得用户可以在多个业务中使用平台的业务线发往的虚拟资源。然而,在这种营销策略下,当用户使用了多个业务线发放的资源时,在资源结算过程中,平台的订单数据复杂度将大大提升。通过本申请实施例中公开的资源转移系统,可以在系统服务器处对虚拟资源进行统一管理,并与真实资源实时同步划转,进而减少了后续的数据处理工作量,提升了资源转移系统的性能。

实施例二

本申请实施例公开的一种资源转移方法,应用于如图1所示的资源转移系统。如图2所示,所述方法包括:

步骤201,在所述客户端处生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端。

本申请的实施例中,所述至少一个客户端101,用于生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端102。本申请实施例中所述的第一资源为虚拟资源,如优惠券、积分、立减金额等。

例如,当用户通过电子设备上的客户端101的产品界面浏览业务线a的产品时,客户端101可以主动为该用户申请第一资源。具体的,客户端101获取当前用户的用户标识,结合当前业务线的标识生成第一资源发放请求,并将所述第一资源发放请求发送给相应的所述服务端102。其中,所述第一资源发放请求中携带第一资源提供方和第一资源接收方的信息,以及向所述第一资源接收方发放第一资源的发放数量。本申请的一些实施例中,所述第一资源提供方的信息通过当前业务线的标识表示,所述第一资源接收方的信息通过当前用户的用户标识表示。

之后,所述客户端101将生成的虚拟资源发放请求,通过电子设备的网络接口将所述虚拟资源发放请求发送至相应的服务端102。

步骤202,在所述服务端,接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用。

所述服务端101用于接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用。所述服务端101在接收到所述客户端发送的所述第一资源发放请求之后,根据所述第一资源发放请求中携带的第一资源提供方和第一资源接收方的信息,以及向所述第一资源接收方发放第一资源的发放数量作生成预设的第一资源发放接口的调用参数,并调用所述第一资源发放接口。

在调用第一资源发放接口时,传入的参数可以包括:发放数量、用户标识、第一资源使用期限、用户特性、第一资源提供方的第二资源账户等。

服务端接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用的具体实施方式参见实施例一中对资源转移系统的相关描述,此处不再赘述。

步骤203,在所述系统服务器处,通过所述第一资源服务模块接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量。

所述系统服务器中包括的第一资源服务模块1031,用于接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器103处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量。本申请的一些实施例中,所述第一资源服务模块1031通过所述第一资源发放接口的调用参数,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量。

步骤204,通过所述第一资源服务模块,开始预先创建的用于执行多数据库写操作的第一公共事务。

其中,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务。

本申请的一些实施例中,在确定了第一资源提供方和第一资源接收方,以及第一资源的发放数量之后,在所述系统服务器处同时执行第一资源添加操作和第二资源转移操作。例如,基于事务机制,在所述系统服务器处同时执行第一资源添加操作和第二资源转移操作。

事务机制是数据库操作特有的术语,单个逻辑工作单元执行的一系列操作,同步发生数据更新时,防止数据的不一致。本申请的实施例中,基于事务机制,对多数据库写操作进行进一步封装,定义了公共事务机制。

定义了公共事务机制、创建用于执行多数据库写操作的第一公共事务,以及,开始用于执行多数据库写操作的第一公共事务的具体实施方式参见实施例一中的相关描述,此处不再赘述。

本申请的一些实施例中,所述执行第一资源添加操作包括:由所述第一资源服务模块执行向所述第一资源接收方的第一资源账户添加所述发放数量的第一资源的第一资源添加操作,并存储相应的操作记录(即存储向所述第一资源接收方的第一资源账户添加所述发放数量的第一资源的操作记录);所述执行第二资源转移操作包括:由所述第二资源转移模块执行从所述第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移操作,并存储相应的操作记录(即存储从所述第一资源提供方的第二资源账户向资源管理平台的第二资源账户的第二资源转移的操作记录)。

步骤205,判断所述第一事务和所述第二事务是否同时执行成功,若是,则执行步骤206,否则,执行步骤207。

在开始第一公共事务之后,可以通过判断第一公共事务中包括的不同事务的执行结果,确定第一公共事务是否提交。只有所述第一事务和所述第二事务同时执行成功时,才提交所述第一公共事务;否则,回滚第一公共事务中包括的不同事务。

步骤206,响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务。

本申请的一些实施例中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息。

提交所述第一公共事务的具体实施方式参见实施例一中的相关描述,此处不再赘述。

步骤207,回滚所述第一事务和所述第二事务,并返回指示同时执行第一资源添加操作和第二资源转移操作失败的信息。

本申请的一些实施例中,所述开始预先创建的第一公共事务之后,还包括:所述第一公共事务在处理过程中,响应于所述第一事务和所述第二事务未同时执行成功,回滚所述第一事务和所述第二事务,并返回指示同时执行第一资源添加操作和第二资源转移操作失败的信息。

所述第一事务和所述第二事务未同时执行成功的判断手段,以及回滚所述第一事务和所述第二事务的具体实施方式参见实施例一中的相关描述,此处不再赘述。

本申请的一些实施例中,所述响应于所述第一事务和所述第二事务未同时执行成功,回滚所述第一事务和所述第二事务的步骤之后,还包括:响应于所述第一事务和/或所述第二事务返回的执行失败原因满足预设重试条件,重新同时开始预设的执行第一资源添加操作的第一事务和执行第二资源转移操作的第二事务。

响应于所述第一事务和/或所述第二事务返回的执行失败原因满足预设重试条件,重新同时开始预设的执行第一资源添加操作的第一事务和执行第二资源转移操作的第二事务的具体实施方式参见实施例一中的相关描述,此处不再赘述。

在所述客户端处,根据用户操作生成第一资源使用请求,并通过电子设备将所述第一资源使用请求发送至相应的所述服务端;

在所述服务端处接收所述客户端发送的所述第一资源使用请求,并将所述第一资源使用请求映射为对第一资源使用接口的调用;

在系统服务器处,通过所述第一资源服务模块接收对所述第一资源使用接口的调用,并根据对所述第一资源使用接口的调用确定第一资源支付方,以及第一资源的支付数量;

通过所述第一资源服务模块执行将所述第一资源支付方的第一资源账户中所述第一资源减少所述支付数量的第一资源扣减操作;

响应所述第一资源扣减操作执行成功,通过所述第一资源服务模块存储相应的操作记录。

本申请的一些实施例中,如图3所示,在虚拟资源发放成功之后,所述方法还包括:

步骤208,在所述客户端处,根据用户操作生成组合资源使用请求,并通过电子设备将所述组合资源使用请求发送至相应的所述服务端。

在业务线为用户发放了虚拟资源之后,用户可以使用自身账户中的虚拟资源。例如用户在客户端101的收银台界面选择支付通道时,选择了立减金支付,并输入了使用金额,然后提交支付申请,则所述客户端101将根据用户的操作生成第一资源使用请求,所述第一资源使用请求中至少包括用户标识信息和支付数量。然后,客户端101将所述第一资源使用请求通过电子设备的网络接口发送至对应的服务端102。

步骤209,在所述服务端接收所述客户端发送的所述组合资源使用请求,并将所述组合资源使用请求映射为对组合资源使用接口的调用。

所述服务端102接收所述客户端101发送的所述第一资源使用请求,之后,将将所述第一资源使用请求映射为对第一资源使用接口的调用。第一资源使用接口的调用参数包括:用户标识信息和支付数量。

步骤210,在所述系统服务器处,通过所述第一资源服务模块接收对所述组合资源使用接口的调用,并根据对所述组合资源使用接口的调用确定第一资源支付方、第一资源的支付数量、第二资源支付账户、第二资源接收账户、第二资源转移数量。

所述系统服务器包括第一资源服务模块1031,第一资源服务模块1031用于接收对所述第一资源使用接口的调用,并根据对所述第一资源使用接口的调用确定第一资源支付方,以及第一资源的支付数量。

步骤211,通过所述第一资源服务模块,在所述系统服务器处同时执行第一资源扣减操作和第二资源转移操作。

本申请的一些实施例中,所述在所述系统服务器处同时执行第一资源扣减操作和第二资源转移操作,包括:开始预先创建的用于执行多数据库写操作的第二公共事务,所述第二公共事务在处理过程中将同时开始预设的用于执行第一资源扣减操作的第三事务和用于执行第二资源转移操作的第四事务;响应于所述第三事务和所述第四事务同时执行成功,提交所述公共事务;其中,提交所述公共事务包括:提交所述第三事务和所述第四事务,以及,返回指示同时执行第一资源扣减操作和第二资源转移操作成功的信息。

其中,所述执行第一资源扣减操作包括:由所述第一资源服务模块执行从所述第一资源支付方的第一资源账户扣减所述支付数量的第一资源,并存储相应的操作记录;所述执行第二资源转移操作包括:由所述第二资源转移模块执行从所述第二资源支付账户向所述第二资源接收账户的第二资源转移,并存储相应的操作记录。

其中,第二公共事务的定义、创建,以及执行过程参见实施例一中的相关描述,此处不再赘述。下面结合图4举例说明本申请实施例中所述的资源转移方法和基于所述资源转移系统的实施过程。所述资源转移系统包括:客户端、服务端和系统服务器。所述资源转移方法包括:

步骤401,在所述客户端处生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端。

步骤402,在所述服务端,接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用。

步骤403,在所述系统服务器处,通过所述第一资源服务模块接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量。

步骤404,通过所述第一资源服务模块,开始预先创建的用于执行多数据库写操作的第一公共事务。

步骤405,判断所述第一事务和所述第二事务是否同时执行成功,若是,则执行步骤406,否则,执行步骤407。

步骤406,响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务。

步骤407,回滚所述第一事务和所述第二事务,并返回指示同时执行第一资源添加操作和第二资源转移操作失败的信息。

步骤408,在所述客户端处,根据用户操作生成组合资源使用请求,并通过电子设备将所述组合资源使用请求发送至相应的所述服务端。

步骤409,在所述服务端接收所述客户端发送的所述组合资源使用请求,并将所述组合资源使用请求映射为对组合资源使用接口的调用。

步骤410,在所述系统服务器处,通过所述第一资源服务模块接收对所述组合资源使用接口的调用,并根据对所述组合资源使用接口的调用确定第一资源支付方、第一资源的支付数量、第二资源支付账户、第二资源接收账户、第二资源转移数量。

步骤411,通过所述第一资源服务模块,在所述系统服务器处同时执行第一资源扣减操作和第二资源转移操作。

本申请实施例公开的资源转移方法,应用于本申请实施例一中所述的资源转移系统,方法的各步骤的具体实施方式不再赘述,可参见系统实施例相应模块或子模块的具体实施方式。

本申请实施例公开的资源转移方法,通过在所述客户端处生成第一资源发放请求,并通过电子设备将所述第一资源发放请求发送至相应的所述服务端;在所述服务端,接收所述客户端发送的所述第一资源发放请求,并将所述第一资源发放请求映射为对第一资源发放接口的调用;在所述系统服务器处,通过所述第一资源服务模块接收对所述第一资源发放接口的调用,并根据对所述第一资源发放接口的调用和所述系统服务器处存储的所述第一资源提供方的注册信息,确定第一资源提供方和第一资源接收方,以及第一资源的发放数量;通过所述第一资源服务模块,开始预先创建的用于执行多数据库写操作的第一公共事务,所述第一公共事务在处理过程中将同时开始预设的用于执行第一资源添加操作的第一事务和用于执行第二资源转移操作的第二事务;以及,响应于所述第一事务和所述第二事务同时执行成功,提交所述第一公共事务;其中,提交所述第一公共事务包括:提交所述第一事务和所述第二事务,以及,返回指示同时执行第一资源添加操作和第二资源转移操作成功的信息,有助于提升资源转移过程中存储的资源数据的准确性。

本申请实施例公开的资源转移方法,通过设置系统服务器,并在系统服务器中分层次设置第一资源服务模块和第二资源转移模块,将虚拟资源的接口服务、虚拟资源转移和真实资源转移隔离操作,首先进行资源转移的逻辑判断和处理,然后基于事务机制同步执行虚拟资源和真实资源转移,有效保证了用户虚拟资源和业务线的营销资金的同步划转,保障账户信息的一致性,提升了存储资源数量和资源转移操作记录等数据的准确性,进一步提升了资源转移操作的稳定性。

相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例二所述的资源转移方法。所述电子设备可以为pc机、移动终端、个人数字助理、平板电脑等。

本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例二所述的资源转移方法的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本申请提供的一种资源转移方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

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