掌桥专利:专业的专利平台
掌桥专利
首页

一种实现订单状态同步的方法及该装置

文献发布时间:2023-06-29 06:30:04


一种实现订单状态同步的方法及该装置

技术领域

本发明属于数据同步领域,尤其涉及一种实现订单状态同步的方法及该装置。

背景技术

目前虚拟服务电商平台大都需要采购不同供应商产品,然后放在其销售平台上出售。由于虚拟产品较一般产品具有特殊性,例如价格变动活跃、优惠活动时效性强等,往往需要快速上架到平台,及时迎合市场的需求。而接入供应商的线上供货服务是首要环节,一般来说这包含以下几个步骤:1.对方提供相关技术文档;2.我方技术根据文档开发;3.验收测试;4.上线供应商服务到我方平台。而接入环节(2)中与供应商的订单状态(完成、失败或处理中)同步是非常重要的一环,因为这将直接影响上下游的结算。

但由于供应商较多,且每个供应商平台的订单接口标准不一,这就导致每次接入都需要通过编写专门对接的大量代码来实现。这种做法不仅效率低下,而且需要浪费人力对每次的编码进行测试,无法实现业务侧快速上线的需求。

因为需要快速接入,所以编码的质量非常取决于开发人员的水平,但这个订单状态同步又是交易系统非常重要的部分,这将使得风险变得不可控,会给实时交易系统带来很大的风险,有可能因为某些代码细节没处理好导致亏损。再者,每次接入都需要编码与测试,不仅耗费时间长而且人力成本也高。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种订单状态同步方法,以减少快速接入时的编码量和测试时间,降低系统风险。

本申请方案提供一种实现订单状态同步的方法,包括:

针对供应商平台的接口标准,通过图形页面模板化配置第一处理单元,所述第一处理单元包括提取部和匹配部;

获取供应商平台反馈的响应数据,所述响应数据包括状态判断数据;

根据所述供应商平台匹配选择相应的第一处理单元;

所述提取部提取所述响应数据中的状态判断数据;

所述匹配部对所述状态判断数据进行匹配计算;

若所述匹配计算的结果为成功/失败,则进行第一业务操作;

若所述匹配计算的结果不为成功/失败,则进行第二业务操作。

进一步地,所述提取部包括第一数据格式和第一提取脚本,所述匹配部包括第一匹配规则和第一比较数据。

进一步地,所述的提取部提取所述响应数据中的状态判断数据,包括:

所述提取部使用第一数据格式和第一提取脚本提取所述响应数据中的状态判断数据。

进一步地,所述的匹配部对所述状态判断数据进行匹配计算,包括:

所述匹配部使用所述第一匹配规则将所述状态判断数据与所述第一比较数据进行匹配计算。

进一步地,所述的获取供应商平台反馈的响应数据,包括:通过回调或主动查询获取供应商平台反馈的响应数据。

进一步地,若通过回调获取供应商平台反馈的响应数据,则所述第一处理单元还包括IP检验部和签名校验部。

进一步地,所述第一业务操作包括修改订单状态,所述第二业务操作包括结束该订单同步操作或重复该订单状态同步操作。

一种实现订单状态同步的装置,包括:

配置单元,用于配置第一处理单元的提取部和匹配部;

数据获取单元,用于获取供应商平台反馈的响应数据,所述响应数据包括状态判断数据;

选择单元,用于根据所述供应商平台匹配选择相应的第一处理单元;

所述第一处理单元,其提取部提取所述响应数据中的状态判断数据,其匹配部对所述状态判断数据进行匹配计算;若所述匹配计算的结果为成功/失败,则进行第一业务操作;若所述匹配计算的结果不为成功/失败,则进行第二业务操作;

第一业务操作单元,进行所述第一业务操作;

第二业务操作单元,进行所述第二业务操作。

进一步地,所述提取部包括第一数据格式和第一提取脚本,所述匹配部包括第一匹配规则和第一比较数据。

根据权利要求9所述的装置,其特征在于,所述的提取所述响应数据中的状态判断数据,以及对所述状态判断数据进行匹配计算,包括:所述提取部使用第一数据格式和第一提取脚本提取所述响应数据中的状态判断数据;所述匹配部使用所述第一匹配规则将所述状态判断数据与所述第一比较数据进行匹配计算。

本申请的改进带来如下优点:本申请一种订单状态同步的方法通过图形页面模板化配置第一处理单元,使得开发人员每次接入都只需要按照固定的流程进行配置即可,无需再编码,也就无需每次接入都进行代码测试,只需要验证功能即可。不仅保证了系统的稳定性,而且也提高了接入的效率以及节省了人力成本。再者,在设计模板的时候有充足的时间、人力、物力考虑到各种正常和异常的场景,可以把可选模板设计得更加全面稳健。因此,通过图形页面进行流程固定的模板化配置,防止出现因编码不当、流程处理不当导致接入出错。

附图说明

图1为本申请实施例提供的实现订单状态同步的一种可选系统架构。

图2示出了本申请实施例提供的实现订单状态同步方法流程图。

图3为本申请实施例在实施主动查询时的流程示意图。

图4为本申请实施例在实施回调时的流程示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。

图1为本申请实施例提供的实现订单状态同步的一种可选系统架构,如图1所述,该系统架构可以包括:销售平台和供应商平台。

其中,销售平台可以是提供虚拟服务产品销售服务的电商平台等,虚拟服务产品可以是手机话费充值等。供应商平台可以是提供虚拟服务产品的平台。两者之间进行订单状态同步的流程大致如下:

用户在销售平台下一个虚拟商品的订单(例如手机话费充值),在用户完成支付后,销售平台向供应商平台发起发货请求(包含销售订单标识),供应商平台此时亦生成一个与销售订单标识关联的订单。供应商平台在完成订单(例如完成手机话费充值)后更新其平台的订单状态,并调用销售平台提供的地址向销售平台进行订单状态的通知,或由供应商平台提供状态查询接口供销售平台调用查询和通知。然后销售平台将从供应商平台获取的、包含订单状态信息的通知进行处理后,获取供应商平台中该订单的真实处理状态(例如成功、失败、处理中等),再根据这个状态同步修改销售平台上该销售订单的状态,达到订单状态同步的目的。

正如背景技术所言的,由于供应商较多,且每个供应商平台的订单接口标准不一,无法使用一个单一的接口对接多个供应商平台,导致每次接入都需要通过编写大量代码来对接不同的供应商平台。针对这一问题,本申请一种订单状态同步的方法通过图形页面模板化配置第一处理单元,然后通过主动调用查询或被动通知获取供应商平台反馈的响应数据,然后对响应数据进行提取和匹配处理,以获取供应商平台的订单状态,再对销售平台进行订单状态修改,达到订单状态同步的目的。

接下来,以销售平台的角度,对本申请的实现订单状态同步方法进行介绍,如图2所示,图2示出了本申请实施例提供的实现订单状态同步方法流程图,该方法可以包括以下步骤:

S100,针对供应商平台的接口标准,通过图形页面模板化配置第一处理单元,第一处理单元包括提取部和匹配部。

由于每个供应商平台的响应数据都可能不一样,面对众多数据格式不同的响应数据,现有的解决方案一般是每次对接时都针对其数据格式编写一个提取代码,以从响应数据中获取相应的状态判断数据。而本实施例则是针对每个供应商平台都设置一个匹配的数据格式和提取脚本,则在针对供应商平台配置第一处理单元时,可以选择与供应商平台匹配的数据格式和提取脚本以提取状态判断数据,即可避免多次编码带来的不便和不稳定。

具体的,提取部可以包括第一数据格式和第一提取脚本。只要在模板中配置合适的数据格式(例如常见的数据格式:json、xml等),并编写符合语法的提取脚本即可针对性地提取对应供应商平台的状态判断数据。

对提取的到的状态判断数据,进行处理策略配置(当数据命中某种规则,就会进入不同的处理流程),配置者可以先选择匹配规则(常用的等于、不等于、包含、正则等模板已事先内置),再定义比较数据,最后指定处理流程(第一业务操作和第二业务操作等)。例如,可以定义比较数据为:1、2、3;定义匹配规则为:1则表示订单处理成功;2则为表示订单处理失败;3则表示订单处理中。若此时提取部提取到的状态判断数据为1,使用匹配规则和比较数据进行匹配判断,则可以知道该订单已在供应商平台处理成功。

具体的,匹配部包括第一匹配规则和第一比较数据。

每个供应商平台因为接口标准的不同,在本实施例中,每个不同的供应商可以专门配置一个处理单元进行对接,以准确提取响应数据中与订单状态相关的信息,以备进行订单状态同步。

S200,获取供应商平台反馈的响应数据,响应数据包括状态判断数据。

具体的,通过回调或主动查询获取供应商平台反馈的响应数据。

其中,如图3所示,主动查询是通过供应商平台提供的查询接口,通过该查询接口重复地进行轮询调用,并取每次的响应数据进行提取分析。

如图4所示,回调则是销售平台提供一个具有供应商标识的URL给供应商平台,作为供应商平台对销售平台进行订单状态通知的地址。供应商平台可以调用该地址向销售平台提供包含有订单状态信息的响应数据。

若通过回调获取供应商平台反馈的响应数据,则第一处理单元还包括IP检验部和签名校验部。

其中,IP检验部可以用于进行IP白名单的检验,判断该通知请求是否来自已登记的供应商平台。IP检验部主要定义了请求的IP白名单、请求方法(GET/POST等)。

签名校验部可以用于进行签名校验、加解密校验等,判断响应数据是否合法,以避免恶意篡改。

S300,根据供应商平台匹配选择相应的第一处理单元。

以根据不同供应商平台选择对应的处理单元,针对性地对接供应商平台接口。

S400,提取部提取响应数据中的状态判断数据。

具体的,提取部使用第一数据格式和第一提取脚本提取响应数据中的状态判断数据。

首先针对常见的数据格式解析,如json/xml这类,可以使用jsonpath或xpath路径语言(因为这两者都是w3c标准,使用此可以提高系统的扩展/移植性),并使用开源的解析框架进行解析;其次针对组合的数据结构,可以使用解析语法以及解析函数;最后针对需要进行数据计算(数据签名/加解密)的操作,可以使用aviator(一个高性能、轻量级的java语言实现的表达式求值引擎,表达式引擎有很多,但是这款引擎开源并且社区活跃,方便后续迭代升级优化)对数据进行处理和提取。

S500,匹配部对状态判断数据进行匹配计算。

具体的,匹配部使用第一匹配规则将状态判断数据与第一比较数据进行匹配计算。

在响应数据解析提取之后,接下来就是如何将提取的数据与处理流程(订单发货成功/失败)相关联:首先根据供应商提供的文档,在模板上定义用于比较的数据,以及当前处理数据与比较数据的匹配规则;最后匹配符合之后订单进入哪种处理流程(订单发货成功/失败),这当中的关键点就是数据匹配的逻辑运算,常见的如等于、不等于、包含、不包含,更复杂的还有正则匹配,以及多规则间的与、或、非的运算,这一块的实现可以事先编码在模块内置,开发人员直接在模块的图形配置界面进行选择即可。本实施例之所以选择这种方式而不是由开发人员实时编写脚本内置,目的是为了尽可能的提高这一模块的稳定性。

举个简单的例子,假如某个供应商反馈的响应数据是:{"orderId":"84750384480234755","status":"1","sign":"badb82c53141e8ea9673b1ff0b3a6e82"},而第一处理单元配置的提取规则为:【数据格式】=jsonpath,【提取脚本】包括:【提取公式】=$.status,【订单成功匹配公式】=(value==1)。第一步根据根据数据格式,选择匹配执行的提取脚本,将响应数据与【提取公式】作为入参,执行计算得到value=1,再使用匹配部进行判断,将value与【订单成功匹配公式】作为入参,执行计算得到结果:true,由此结果可以得知订单已成功。

S600,若匹配计算的结果为成功/失败,则进行第一业务操作;若匹配计算的结果不为成功/失败,则进行第二业务操作。

具体的,第一业务操作包括修改订单状态,例如匹配计算的结果为成功或失败,则把销售平台上该订单的状态进行同步修改。第二业务操作包括结束该订单同步操作或重复该订单状态同步操作,例如匹配计算的结果为处理中,则结束订单状态同步操作,或者重复进行该订单状态同步操作,重新开始查询获取供应商平台的响应数据。

一种实现订单状态同步的装置,包括:

配置单元,用于配置第一处理单元的提取部和匹配部;

数据获取单元,用于获取供应商平台反馈的响应数据,响应数据包括状态判断数据;

选择单元,用于根据供应商平台匹配选择相应的第一处理单元;

第一处理单元,其提取部提取响应数据中的状态判断数据,其匹配部对状态判断数据进行匹配计算;若匹配计算的结果为成功/失败,则进行第一业务操作;若匹配计算的结果不为成功/失败,则进行第二业务操作;

第一业务操作单元,进行第一业务操作;

第二业务操作单元,进行第二业务操作。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

相关技术
  • 一种电商平台系统的订单发票获取装置及实现方法
  • 一种基于CMSP实现跨网闸Oracle数据库同步的方法及装置
  • 调整订单状态的方法、装置及存储介质、电子设备
  • 电商平台系统的订单状态实时同步解析装置及实现方法
  • 一种基于mybatis拦截器实现订单状态同步的方法及服务器
技术分类

06120116024965