发明内容
本说明书一个或多个实施例描述了一种补偿记账的方法和装置,能够降低账务系统和账务数据库的压力。
第一方面,提供了一种补偿记账的方法,方法包括:
接收业务请求,所述业务请求涉及至少一项记账操作;
判断当前是否属于业务高峰期;
在判断出当前属于业务高峰期的情况下,针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构;
如果判断出所述记账操作的会计主体为签约机构,则使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。
在一种可能的实施方式中,所述接收业务请求,包括:
接收买家和卖家通过收单机构进行的交易业务请求;或者,
接收用户通过第三方支付平台进行的转账业务请求;或者,
接收用户向第三方支付平台进行的充值业务请求。
在一种可能的实施方式中,所述判断当前是否属于业务高峰期,包括:
如果当前时间属于预先设定的促销周期,则确定当前属于业务高峰期。
在一种可能的实施方式中,所述判断当前是否属于业务高峰期,包括:
如果预设时间周期内接收到的业务请求的数量超过预设阈值,则确定当前属于业务高峰期。
在一种可能的实施方式中,所述签约机构包括银行卡的发卡机构、收单机构、第三方支付平台、签约的卖家或签约的买家。
在一种可能的实施方式中,所述使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账,包括:
在不属于业务高峰期的时段中向所述账务系统发出通知,使得账务系统在所述不属于业务高峰期的时段中对所述记账操作进行补偿记账。
在一种可能的实施方式中,所述使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账,包括:
在业务高峰期向所述账务系统发出通知,使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。
第二方面,提供了一种补偿记账的装置,装置包括:
接收单元,用于接收业务请求,所述业务请求涉及至少一项记账操作;
第一判断单元,用于判断当前是否属于业务高峰期;
第二判断单元,用于在所述第一判断单元判断出当前属于业务高峰期的情况下,针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构;
补偿记账单元,用于如果所述第二判断单元判断出所述记账操作的会计主体为签约机构,则使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,首先接收业务请求,所述业务请求涉及至少一项记账操作,然后判断当前是否属于业务高峰期,在判断出当前属于业务高峰期的情况下,再针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构,如果判断出所述记账操作的会计主体为签约机构,则使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账,从而降低账务系统和账务数据库的压力。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,以SOA架构为例,业务系统11提供业务服务,在提供业务服务的过程中涉及对业务数据库12的数据操作,账务系统13提供记账服务,在提供记账服务的过程中涉及对账务数据库14的数据操作,当业务系统11接收到业务请求时,针对该业务请求对业务数据库12进行数据操作,并对账务系统13进行服务调用,以使账务系统13对账务数据库14进行数据操作,以完成该业务请求涉及的记账操作。
在业务量大,高并发场景下(例如电商平台大促期间),对账务系统13的吞吐率,账务数据库14性能有很高的要求。针对该场景,业务系统11首先接收业务请求,所述业务请求涉及至少一项记账操作,然后判断当前是否属于业务高峰期,在判断出当前属于业务高峰期的情况下,再针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构,如果判断出所述记账操作的会计主体为签约机构,则使得账务系统13在不属于业务高峰期的时段中对所述记账操作进行补偿记账,从而降低账务系统13和账务数据库14的压力。
可以理解的是,吞吐率:指一个系统在单位时间内提供的服务量。会计主体:指会计为之服务的特定单位。
在一种可能的实施方式中,业务系统11在判断出当前属于业务高峰期的情况下,针对记账操作的会计主体是否为签约机构,来确定对该记账操作所采用的记账方式。当记账操作的会计主体为签约机构(简称机构)时,采用异步补账方案,即使得账务系统13在不属于业务高峰期的时段中对该记账操作进行补偿记账;当记账操作的会计主体为非签约机构(简称客户)时,采用实时记账方案,即使得账务系统13在业务高峰期对该记账操作进行实时记账。该实施方式,减少了实时记账的记账操作的数量,因而降低了账务系统13和账务数据库14的压力。
本说明书披露的补偿记账的方法的一个或多个实施例可以应用于第三方支付平台(例如支付宝)或收单机构(例如淘宝)的记账操作,以及其他可能的涉及记账操作的系统,在此不做赘述。
其中,收单机构:签约商户为持卡人提供服务,直接或间接参加交换的清算会员单位。
图2示出根据一个实施例的补偿记账的方法流程图,该方法的执行主体可以是图1所示的业务系统。如图2所示,该实施例中补偿记账的方法包括以下步骤:步骤21,接收业务请求,所述业务请求涉及至少一项记账操作;步骤22,判断当前是否属于业务高峰期;步骤23,在判断出当前属于业务高峰期的情况下,针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构;步骤24,如果判断出所述记账操作的会计主体为签约机构,则使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。下面描述以上各个步骤的具体执行方式。
首先在步骤21,接收业务请求。本说明书实施例中对于接收业务请求的类型不做限定,只要涉及记账操作的业务请求的类型均涵盖在本发明保护范围之内,例如,上述业务请求可以但不限于包括:接收买家和卖家通过收单机构进行的交易业务请求;或者,接收用户通过第三方支付平台进行的转账业务请求,例如第一用户请求转账到第二用户的账户;或者,接收用户向第三方支付平台进行的充值业务请求。
接着在步骤22,判断当前是否属于业务高峰期。可以理解在业务量大,高并发场景下(例如电商平台大促期间)即为业务高峰期。所述判断当前是否属于业务高峰期可以但不限于采用如下任一种方式:
方式一,如果当前时间属于预先设定的促销周期,则确定当前属于业务高峰期。
参见表一所示的促销周期示意图。
表一
促销周期 |
10月1日9点至10点 |
…… |
11月11日0点至1点 |
如果当前时间属于表一中的任一促销周期,则确定当前属于业务高峰期,如果当前时间不属于表一中的任一促销周期,则确定当前不属于业务高峰期。
方式二,如果第一预设时间周期内接收到的业务请求的数量超过第一预设阈值,则确定当前属于业务高峰期。
示例性地,可以根据系统的吞吐率来设定上述第一预设时间周期和第一预设阈值,例如,上述第一预设时间周期为1秒,上述第一预设阈值为100。当1秒内接收到的业务请求的数量超过100,则确定当前属于业务高峰期。当1秒内接收到的业务请求的数量小于100,则确定当前不属于业务高峰期
接着在步骤23,在判断出当前属于业务高峰期的情况下,针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构。其中,所述签约机构包括银行卡的发卡机构(即发卡行)、收单机构、第三方支付平台、签约的卖家或签约的买家。其中,发卡行是指发行银行卡,维护与卡关联的帐户,并与持卡人在这两方面具有协议关系的机构。可以理解的是,所述签约机构可以为互相签署了T+n清算协议的交易机构,其中,T代表交易日期,n代表在交易日期后的n天进行结算。在一个示例中,签约机构为发卡行、收单机构和第三方支付平台,将买家和卖家统一视作非签约机构。在另一个示例中,不仅将发卡行、收单机构和第三方支付平台视作签约机构,而且将签约的买家和签约的卖家也视作签约机构。
最后在步骤24,如果判断出所述记账操作的会计主体为签约机构,则使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。该步骤24也涉及两种处理方式,一种方式为,在不属于业务高峰期的时段中向账务系统发出通知,使得账务系统在所述不属于业务高峰期的时段中对所述记账操作进行补偿记账。另一种方式为,在业务高峰期向账务系统发出通知,使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。这两种方式均可以称为异步任务补偿记账处理方式。
此外,在一个示例中,账务系统可以在业务高峰期过去后的任意时间段对所述记账操作进行补偿记账。在另一个示例中,账务系统可以在业务高峰期过去后的业务低峰期对所述记账操作进行补偿记账。其中,可以采取与业务高峰期类似的判断方式来判断当前是否属于业务低峰期。例如,下述的方式三或方式四。
方式三,如果当前时间属于预先设定的低峰周期,则确定当前属于业务低峰期。
参见表二所示的低峰周期示意图。
表二
低峰周期 |
10月1日0点至5点 |
…… |
11月11日5点至7点 |
如果当前时间属于表二中的任一低峰周期,则确定当前属于业务低峰期,如果当前时间不属于表二中的任一低峰周期,则确定当前不属于业务低峰期。
方式四,如果第二预设时间周期内接收到的业务请求的数量小于第二预设阈值,则确定当前属于业务低峰期。
示例性地,可以根据系统的吞吐率来设定上述第二预设时间周期和第二预设阈值,例如,上述第二预设时间周期为1秒,上述第二预设阈值为10。当1秒内接收到的业务请求的数量小于10,则确定当前属于业务低峰期。当1秒内接收到的业务请求的数量大于10,则确定当前不属于业务低峰期。
通过本说明书实施例提供的方法,首先接收业务请求,所述业务请求涉及至少一项记账操作,然后判断当前是否属于业务高峰期,在判断出当前属于业务高峰期的情况下,再针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构,如果判断出所述记账操作的会计主体为签约机构,则使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账,从而降低账务系统和账务数据库的压力。
下面对本说明书实施例中业务请求涉及到的记账操作进行举例说明。
图3为本说明书披露的一个实施例的收单机构交易场景示意图。如图3所示,收单机构签约商户对接发卡行,为用户提供收单和支付服务,在客户之间进行资产转移。在一笔借记卡收单支付流程中,假设买家、卖家、收单机构在同一家发卡行开设资金账户。实际资金流为:买家发卡行账户资金转移到收单机构在发卡行所属账户,收单机构在发卡行所属账户资金转移到卖家发卡行账户。事实上,基于收单机构和发卡行之前的清算协议,为了清晰的操作和记录机构之间资金流转行为,收单机构一般会为发卡行在自身内部开设虚拟账户。从收单机构视角来看,以上业务的虚拟资金流可能是如下所示:虚拟流入待清算账户资金转移到银行卡网关过渡户,银行卡网关过渡户资金转移到卖家收单机构余额户,卖家收单机构余额户资金转移到虚拟流出待清算账户,收单机构通过和发卡行之间的清算完成实际资金流转。如上所述,一笔业务可能会涉及多笔记账操作,本说明书实施例中将记账操作中涉及的角色(即会计主体)进行划分,将买家和卖家看作客户,将发卡行看作签约机构。对于客户所属账户记账操作采用实时记账方案,从而客户可以实时感知到自身账户的资金变动。对于签约机构所属虚拟账户的记账操作采用异步补偿记账方案,因为收单机构和发卡机构一般遵循T+n清算协议,机构并不需要实时感知所属虚拟账户资金变动。
这样在一笔业务中,可以将账户的记账操作按照所属会计主体进行划分,分别使用实时记账方案和异步补账方案,从而减少账务系统需要实时处理的记账操作数量,降低账务系统和数据库压力。该方案的优点在于客户记账操作实时记账业务无损,签约机构记账操作异步补偿降低系统压力,需要实时记账的记账操作大量减少(例如,以上借记卡收单支付业务举例中实时记账操作数量能够减少约60%),从而在同样系统和数据库性能条件下可以支撑更多业务运转。
此外,第三方支付平台交易场景与收单机构交易场景类似。
通常地,第三方支付平台有自己的一套客户或账户或账务体系,用于记录各个客户或商户的基本信息、账户信息、账务信息。其中,基本信息包括实名认证信息、联系方式等信息。账户信息比较重要的属性是账户资金或余额,此处的账户资金实际上只是虚拟账户的资金信息,并非实际的资金,实际的资金存放在支付平台在银行设立的银行账户上。关于账户或账务体系,一般有单式记帐法、复式记账法,当然一般所说的账户或账务体系,实际上还涉及客户或商户模型,以满足“客户为中心”而非“账户为中心”的管理需求。简单说来,第三方支付平台的账户体系实际上用于记录每一个客户或商户的账户资金等虚拟信息。
第三方支付平台(简称为支付平台)会在银行设立一个或多个账户,用于归集客户或商户的备付金(可以理解为,客户或商户充值、支付、交易等待结算的资金)。以普通用户在第三方支付平台给自己虚拟账户在线充值为例,通常包括以下处理过程:1)、用户在第三方支付平台执行充值操作,跳转到银行网关进行支付。2)、用户支付成功后,银行会实时从用户银行账户上执行扣款操作。3)、银行网关通知支付平台用户支付成功(成功扣款)。4)、支付平台在自己账户体系中给对应用户虚拟账户增加对应资金。5)、银行和支付平台然后按照约定的结算周期(例如T+1)进行对账、清结算等操作后,将用户充值的资金结算给支付平台在银行设立的账户。
需要说明的是,一般情况下支付平台不会在自己在银行设立的账户为每一个用户都设立一个对应的账户,只会有一个总的账户用于归集所有客户或商户的资金。而哪一个用户账户余额有多少钱,需要结算多少钱给某个商户,在支付平台的虚拟账户或结算系统中做标识。
可以理解的是,本说明书实施例中涉及的业务场景、业务类型以及记账操作比较广泛,无法一一列举,但是这些业务场景或业务类型有一个共同点,那就是既涉及签约机构的记账操作,也涉及非签约机构的记账操作,根据记账操作的会计主体来选择执行实时记账方案或补偿记账方案,从而在不影响用户体验的同时降低了账务系统和账务数据库的压力。
根据另一方面的实施例,还提供一种补偿记账的装置。图4示出根据一个实施例的补偿记账的装置的示意性框图。如图4所示,该装置400包括:
接收单元41,用于接收业务请求,所述业务请求涉及至少一项记账操作;
第一判断单元42,用于判断当前是否属于业务高峰期;
第二判断单元43,用于在所述第一判断单元42判断出当前属于业务高峰期的情况下,针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构;
补偿记账单元44,用于如果所述第二判断单元43判断出所述记账操作的会计主体为签约机构,则使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。
在一个示例中,所述接收单元41,具体用于接收买家和卖家通过收单机构进行的交易业务请求;或者,接收用户通过第三方支付平台进行的转账业务请求;或者,接收用户向第三方支付平台进行的充值业务请求。
在一个示例中,所述第一判断单元42,具体用于如果当前时间属于预先设定的促销周期,则确定当前属于业务高峰期。
在一个示例中,所述第一判断单元42,具体用于如果预设时间周期内接收到的业务请求的数量超过预设阈值,则确定当前属于业务高峰期。
在一个示例中,所述签约机构包括银行卡的发卡机构、收单机构、第三方支付平台、签约的卖家或签约的买家。
在一个示例中,所述补偿记账单元44,具体用于在不属于业务高峰期的时段中向所述账务系统发出通知,使得账务系统在所述不属于业务高峰期的时段中对所述记账操作进行补偿记账。
在一个示例中,所述补偿记账单元44,具体用于在业务高峰期向所述账务系统发出通知,使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账。
通过以上装置,首先由接收单元41接收业务请求,所述业务请求涉及至少一项记账操作,然后由第一判断单元42判断当前是否属于业务高峰期,在判断出当前属于业务高峰期的情况下,再由第二判断单元43针对所述至少一项记账操作中的每项记账操作,判断所述记账操作的会计主体是否为签约机构,如果判断出所述记账操作的会计主体为签约机构,则由补偿记账单元44使得账务系统在不属于业务高峰期的时段中对所述记账操作进行补偿记账,从而降低账务系统和账务数据库的压力。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。