发明内容
本申请实施例提供一种电子数据的转移方法和设备,以避免业务平台多次将电子数据转移到用户指定的位置,避免造成业务平台的电子数据损失。
本申请实施例提供一种电子数据的转移方法,所述方法包括以下步骤:
业务平台向业务服务器发送电子数据转移请求消息,所述电子数据转移请求消息中携带业务信息和测试信息;其中,所述业务信息用于指示所述业务服务器将第一电子数据转移到用户指定的第一位置,所述测试信息用于指示所述业务服务器将第二电子数据转移到业务提供方指定的第二位置;
所述业务平台在判定出当前发生电子数据转移异常时,所述业务平台判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置;
如果是,则所述业务平台确定所述业务服务器已经将所述第一电子数据转移到所述第一位置,并拒绝重新将所述第一电子数据转移到所述第一位置。
所述业务平台判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置之后,还包括:
如果否,则所述业务平台确定所述业务服务器未将所述第一电子数据转移到所述第一位置,并重新将所述第一电子数据转移到所述第一位置。
所述业务平台判定出当前发生电子数据转移异常的过程,具体包括:
当业务平台向业务服务器发送电子数据转移请求消息之后,如果在预设时间内未收到所述业务服务器返回的已经成功将所述第一电子数据转移到所述第一位置的响应信息时,所述业务平台判定出当前发生电子数据转移异常。
所述业务平台判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置,具体包括:
当所述测试信息包括测试标识时,所述业务平台判断所述第二位置内是否记录了对应所述测试标识的第二电子数据;如果是,所述业务平台判定所述业务服务器已经将所述第二电子数据转移到所述第二位置;如果否,所述业务平台判定所述业务服务器未将所述第二电子数据转移到所述第二位置。
每个电子数据转移请求消息中携带了一个或者多个业务信息、以及一个测试信息,且不同的电子数据转移请求消息中携带的测试信息所包括的测试标识各不相同。
本申请实施例提供一种业务平台,所述业务平台具体包括:
发送模块,用于向业务服务器发送电子数据转移请求消息,所述电子数据转移请求消息中携带业务信息和测试信息;所述业务信息用于指示所述业务服务器将第一电子数据转移到用户指定的第一位置,所述测试信息用于指示所述业务服务器将第二电子数据转移到业务提供方指定的第二位置;
判断模块,用于在判定出当前发生电子数据转移异常时,则判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置;
处理模块,用于当判断结果为是时,确定所述业务服务器已经将第一电子数据转移到第一位置,并拒绝重新将第一电子数据转移到第一位置。
所述处理模块,还用于在判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置之后,当判断结果为否时,确定所述业务服务器未将第一电子数据转移到第一位置,并重新将第一电子数据转移到第一位置。
所述处理模块,进一步用于在判定出当前发生电子数据转移异常的过程中,当所述发送模块向业务服务器发送电子数据转移请求消息之后,如果在预设时间内未收到所述业务服务器返回的已经成功将所述第一电子数据转移到所述第一位置的响应信息时,则判定出当前发生电子数据转移异常。
所述处理模块,进一步用于在判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置的过程中,当所述测试信息包括测试标识时,判断所述第二位置内是否记录了对应所述测试标识的第二电子数据;如果是,则判定所述业务服务器已经将所述第二电子数据转移到所述第二位置;如果否,则判定所述业务服务器未将所述第二电子数据转移到所述第二位置。
每个电子数据转移请求消息中携带了一个或者多个业务信息、以及一个测试信息,且不同的电子数据转移请求消息中携带的测试信息所包括的测试标识各不相同。
与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,通过在电子数据转移请求消息中携带业务信息和测试信息,且业务信息用于指示业务服务器将第一电子数据转移到用户指定的第一位置,测试信息用于指示业务服务器将第二电子数据转移到业务提供方指定的第二位置,在当前发生电子数据转移异常时,虽然业务服务器不会向业务平台返回已经成功将第一电子数据转移到第一位置的响应信息,业务平台也可以基于业务服务器是否已经将第二电子数据转移到第二位置的情况,判定出业务服务器是否已经将第一电子数据转移到第一位置,并在业务服务器已经将第一电子数据转移到第一位置时,拒绝重新将第一电子数据转移到第一位置。上述方式不会导致业务平台多次将电子数据转移到用户指定的位置,以避免业务平台多次将电子数据转移到用户指定的位置,避免造成业务平台的电子数据损失。
实施例一
针对现有技术中存在的问题,本申请实施例一提供一种电子数据的转移方法,如图1所示,该电子数据的转移方法具体可以包括以下步骤:
步骤101,业务平台向业务服务器发送电子数据转移请求消息,该电子数据转移请求消息中携带业务信息和测试信息。其中,该业务信息用于指示业务服务器将第一电子数据转移到用户指定的第一位置,该测试信息用于指示业务服务器将第二电子数据转移到业务提供方指定的第二位置。
步骤102,业务平台在判定出当前发生电子数据转移异常(如业务服务器发生异常)时,则业务平台判断业务服务器是否已经将第二电子数据转移到第二位置。如果是,则执行步骤103;如果否,则执行步骤104。
本申请实施例中,业务平台判定出当前发生电子数据转移异常的过程,具体包括但不限于如下方式:当业务平台向业务服务器发送电子数据转移请求消息之后,如果在预设时间内未收到业务服务器返回的已经成功将第一电子数据转移到第一位置的响应信息时,则业务平台将判定出当前发生电子数据转移异常。否则,业务平台将判定出当前发生电子数据转移未异常。
本申请实施例中,业务平台判断业务服务器是否已经将第二电子数据转移到第二位置的过程,具体包括但不限于如下方式:当测试信息包括测试标识时,业务平台判断第二位置内是否记录了对应于该测试标识的第二电子数据;如果是,则业务平台判定业务服务器已经将第二电子数据转移到第二位置;如果否,则业务平台判定业务服务器未将第二电子数据转移到第二位置。
本申请实施例中,业务平台向业务服务器发送的每个电子数据转移请求消息中携带了一个或者多个业务信息、以及一个测试信息。其中,不同的电子数据转移请求消息中携带的测试信息所包括的测试标识各不相同。
步骤103,业务平台确定业务服务器已经将第一电子数据转移到第一位置,并且业务平台拒绝重新将第一电子数据转移到第一位置。
步骤104,业务平台确定业务服务器未将第一电子数据转移到第一位置,并且业务平台需要重新将第一电子数据转移到第一位置。
基于上述技术方案,本申请实施例中,在业务平台请求业务服务器将第一电子数据转移到用户指定的第一位置(如第三方支付机构请求银行的业务服务器将可用金额转移到用户账户)时,在电子数据转移请求消息中携带业务信息和测试信息,且业务信息用于指示业务服务器将第一电子数据转移到用户指定的第一位置,测试信息用于指示业务服务器将第二电子数据转移到业务提供方指定的第二位置。基于业务平台的请求,业务服务器可以将第一电子数据转移到用户指定的第一位置,并向业务平台返回已经成功将第一电子数据转移到用户指定的第一位置的响应信息。在当前发生电子数据转移异常(如业务服务器发生异常)时,虽然业务服务器不会向业务平台返回已经成功将第一电子数据转移到第一位置的响应信息,业务平台也可以基于业务服务器是否已经将第二电子数据转移到第二位置的情况,判定出业务服务器是否已经将第一电子数据转移到第一位置,并在业务服务器已经将第一电子数据转移到第一位置时,拒绝重新将第一电子数据转移到第一位置。上述方式不会导致业务平台多次将电子数据转移到用户指定的位置,避免业务平台多次将电子数据转移到用户指定的位置,避免造成业务平台的电子数据损失。
本申请实施例的适用场景包括但不限于:第三方支付机构请求银行的业务服务器将电子数据转移到用户账户。例如,批量转出类交易的应用场景等。
在本申请实施例中,在不同的应用场景下,电子数据、第一位置、第二位置等均有不同的情况。以下结合具体的应用场景对此进行详细说明。
(1)电子数据为可用金额,第一位置为用户指定的第一账户(如用户的第三方支付平台账户、银行卡账户等),第二位置为业务提供方指定的第二账户(如运营商的第三方支付平台账户、银行卡账户等)。此应用场景下,业务服务器(如银行的业务服务器)将第一电子数据(即需要转出给用户的可用金额)转移到用户指定的第一账户,且业务服务器将第二电子数据(即需要转出给业务提供方自身的可用金额)转移到业务提供方指定的第二账户。
(2)电子数据为虚拟货币,则第一位置为用户指定的第一账户(例如,用户的用于存储虚拟货币的账户等),且第二位置为业务提供方指定的第二账户(例如,运营商的用于存储虚拟货币的账户等)。在此应用场景下,则业务服务器需要将第一电子数据(即需要转出给用户的虚拟货币)转移到用户指定的第一账户中,且该业务服务器需要将第二电子数据(即需要转出给业务提供方自身的虚拟货币)转移到业务提供方指定的第二账户中。
(3)电子数据为话费数据,则第一位置为用户指定的第一账户(例如,用户手机号码所对应的账户等),且第二位置为业务提供方指定的第二账户(例如,运营商(如移动、联通、电信等运营商)账户等)。在此应用场景下,则业务服务器需要将第一电子数据(即需要转出给用户的话费数据)转移到用户指定的第一账户中,且该业务服务器需要将第二电子数据(即需要转出给业务提供方自身的话费数据)转移到业务提供方指定的第二账户中。
当然,上述应用场景只是本申请实施例中所举的例子,在实际应用中并不局限于上述几种应用场景,所有需要将电子数据转移到第一位置,并将电子数据转移到第二位置的应用场景,均在本申请实施例的保护范围之内。
以下结合第三方支付机构请求银行的业务服务器将电子数据转移到用户账户的应用场景,对本申请实施例中的电子数据的转移方法进行详细说明。
在此应用场景下,业务平台具体可以包括业务后台、批次处理后台、配置中心、异常处理后台、异常判定系统,银行的业务服务器具体可以为网关。
如图2所示,业务后台发起转账交易。批次处理后台对转账交易进行批处理打包;在此过程中,批次处理后台可以得到多个业务信息,且每个业务信息用于指示业务服务器将可用金额转移到用户指定的账户。批次处理后台向配置中心查询该机构(即第三方支付机构)的测试银行账户,由配置中心向批次处理后台返回该机构的测试银行账户;在此过程中,批次处理后台可以得到一个测试信息,且该测试信息用于指示业务服务器将可用金额转移到该机构的测试银行账户。进一步的,批次处理后台对每笔批次插入测试交易,并发送给网关,即针对所有批量转出类交易,在批量组包过程中夹带一笔测试交易,发往指定银行账户,由银行的网关进行后续处理,即银行的网关将可用金额转移到用户指定的账户,将可用金额转移到该机构的测试银行账户。
具体的,在批次处理后台对每笔批次插入测试交易,并发送给网关的过程中,批次处理后台向网关发送携带多个业务信息和一个测试信息的电子数据转移请求消息,各业务信息用于指示网关将可用金额转移到用户指定的账户,该测试信息用于指示网关将可用金额转移到该机构的测试银行账户。
其中,配置中心的数据模型可以如表1所示,基于表1所示的数据模型,配置中心可以向批次处理后台返回该机构的测试银行账户。
表1
收款机构 |
收款方账户所在的银行机构标示,例如:icbc,abc、boc等 |
账户类型 |
收款账户的类型,分为借记卡、信用卡、对公账户 |
银行账户号 |
卡号或者对公账户名 |
银行账户名 |
收款账户名称 |
人行联行号 |
该银行账户对应的人行联行号 |
开户行所在省 |
行政省 |
开户行所在市 |
行政市 |
开户支行名称 |
开户支行的名称 |
如图3所示,银行的网关将可用金额转移到用户指定的账户,将可用金额转移到该机构的测试银行账户的过程中,如果网关超时未返回回执或者返回未识别的返回码,则异常判定系统触发异常规则,其中,异常规则的规则模型可以如表2所示。具体的,当批次处理后台向网关发送电子数据转移请求消息之后,如果在预设时间内未收到网关返回的已经成功将可用金额转移到用户指定的账户的响应信息时,则异常判定系统判定出银行系统发生异常。当银行系统发生异常时,批次处理后台发往银行的批量交易将无法获得消息回执,且无法获得掉单查询接口的明确支付结果,此时在业务上,用户服务承诺的时效即将过期,而银行方面无法人工给出该单据一定失败的承诺。
表2
机构 |
收款方账户所在的银行机构标示,例如:icbc,abc、boc |
渠道标识 |
用于标识渠道的唯一识别码,例如icbc003 |
回执时效阈值 |
例如20min |
是否配置测试交易 |
是,否 |
进一步的,异常处理平台从配置中心获取测试账户信息,由配置中心返回测试账户信息,异常处理平台查询该账户是否交易成功。具体的,异常处理平台判断测试账户内是否包括了相应的可用金额(即测试交易卡号是否收到资金)。如果是,则说明银行已经将可用金额转账到测试账户,且此时银行已经将可用金额转账到用户账户,异常处理平台在该批次上打标不允许置失败或者重发,即不允许将该批次整批置失败处理。如果否,则说明银行还没有将可用金额转账到测试账户,且此时银行也没有将可用金额转账到用户账户,因此,异常处理平台不需要在该批次上打标不允许置失败或者重发。
如果银行已经将可用金额转账到测试账户,且此时银行已经将可用金额转账到用户账户时,则不允许将该批次交易置失败或者重发,从而减少了资金损失发生的概率,并降低由于银行系统的异常、通讯问题等所带来的资金损失,继而有效的降低了批量单据置失败以及重发所带来的资金风险。
基于与上述方法同样的申请构思,本申请实施例中还提供了一种业务平台,如图4所示,所述业务平台具体包括:
发送模块11,用于向业务服务器发送电子数据转移请求消息,所述电子数据转移请求消息中携带业务信息和测试信息;所述业务信息用于指示所述业务服务器将第一电子数据转移到用户指定的第一位置,所述测试信息用于指示所述业务服务器将第二电子数据转移到业务提供方指定的第二位置;
判断模块12,用于在判定出当前发生电子数据转移异常时,则判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置;
处理模块13,用于当判断结果为是时,确定所述业务服务器已经将第一电子数据转移到第一位置,并拒绝重新将第一电子数据转移到第一位置。
所述处理模块13,还用于在判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置之后,当判断结果为否时,确定所述业务服务器未将第一电子数据转移到第一位置,并重新将第一电子数据转移到第一位置。
所述处理模块13,进一步用于在判定出当前发生电子数据转移异常的过程中,当所述发送模块向业务服务器发送电子数据转移请求消息之后,如果在预设时间内未收到所述业务服务器返回的已经成功将所述第一电子数据转移到所述第一位置的响应信息时,则判定出当前发生电子数据转移异常。
所述处理模块13,进一步用于在判断所述业务服务器是否已经将所述第二电子数据转移到所述第二位置的过程中,当所述测试信息包括测试标识时,判断所述第二位置内是否记录了对应所述测试标识的第二电子数据;如果是,则判定所述业务服务器已经将所述第二电子数据转移到所述第二位置;如果否,则判定所述业务服务器未将所述第二电子数据转移到所述第二位置。
本申请实施例中,每个电子数据转移请求消息中携带了一个或者多个业务信息、以及一个测试信息,且不同的电子数据转移请求消息中携带的测试信息所包括的测试标识各不相同。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。