一种第三方平台http回调分发方法、系统、电子设备和存储介质
技术领域
1.本发明涉及一种http回调分发方法、系统、电子设备和存储介质,尤其涉及一种第三方平台http回调分发方法、系统、电子设备和存储介质。
背景技术:2.http回调在oauth2授权、订单支付确认、用户绑定关系建立等场景中扮演重要角色,在本文中提到的回调均基于http(s)协议。当系统与第三方平台进行业务接口对接时,第三方平台一般会授予一套api接口验证序列号app key和api密钥app secret,其中api接口验证序列号app key用作系统在第三方平台的唯一标识,api密钥app secret用于接口数据传输加密。
3.当系统在开发测试阶段,开发人员会将第三方平台授予的app key和app secret用于测试环境系统,第三方平台将系统的回调地址配置为测试环境回调url;当系统完成开发测试发布至生产环境后,第三方平台授予的app key和app secret用于生产环境,第三方平台将系统的回调地址配置为生产环境回调url。此时,因为第三方平台配置的系统回调地址为生产环境,所以当系统发布至生产环境后,测试环境在不更换app key和app secret的情况下,无法接收到第三方平台的回调请求,无法进行全链路测试。更换app key和app secret在一些场景下有高昂成本,比如申请更多的app key和app secret第三方平台会收取更多费用,又如第三方平台对当前app key进行大量的配置设定,复制配置设定到新的app key成本高昂。
技术实现要素:4.本发明的目的在于提供一种第三方平台http回调分发方法、系统、电子设备和存储介质,基于java agent技术的具有一定通用性的回调分发方法,用于java web应用中,使测试环境和生产环境可以共用同一套api接口验证序列号app key和api密钥app secret,解决现有技术存在的缺憾。
5.本发明提供了下述方案:
6.一种第三方平台http回调分发方法,包括:
7.根据平台接口和第三方接口之间的请求与响应,或根据应用与平台接口之间的请求与响应,确定业务对象唯一标识;
8.基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,从平台接口的请求或响应中读取业务对象唯一标识,将该业务对象唯一标识发送给回调分发服务;
9.所述回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,读取业务对象唯一标识,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境。
10.进一步的,在平台接口与第三方接口的请求与响应中,如果存在一个字段对两次调用匹配,即标识两次调用处理的是同一个业务对象,那么该字段称为业务对象唯一标识。
11.进一步的,在应用与平台接口之间的请求与响应中,如果存在一个字段对两次调用匹配,即标识两次调用处理的是同一个业务对象,那么该字段称为业务对象唯一标识。
12.进一步的,所述平台接口的url匹配规则,具体为:采用ant-style path模式匹配规则;
13.所述第三方接口的url匹配规则,具体为:采用ant-style path模式匹配规则。
14.进一步的,ant-style path模式采用apache ant定义的路径匹配模式,利用通配符进行匹配。
15.进一步的,基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,如果匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,将该业务对象唯一标识发送给回调分发服务,所述groovy脚本的作用是在不重新编译代码、不重启服务的情况下从http请求或响应对象中获取业务对象唯一标识。
16.进一步的,所述回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,若匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境,所述groovy脚本的作用是在不重新编译代码、不重启服务的情况下从http请求或响应对象中获取业务对象唯一标识。
17.一种第三方平台http回调分发系统,具体包括:
18.业务对象唯一标识确定模块,用于根据平台接口和第三方接口之间的请求与响应,或根据应用与平台接口之间的请求与响应,确定业务对象唯一标识;
19.http请求拦截模块,基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,从平台接口的请求或响应中读取业务对象唯一标识,将该业务对象唯一标识发送给回调分发服务;
20.回调请求分发模块,回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,读取业务对象唯一标识,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境。
21.一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行所述方法的步骤。
22.一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述计算机程序在所述电子设备上运行时,使得所述电子设备执行所述方法的步骤。
23.本发明与现有技术相比具有以下的优点:
24.本发明基于java agent技术,具有一定的通用性,在java web应用中,使测试环境和生产环境可以共用同一套api接口验证序列号app key和api密钥app secret。
25.本发明能够妥善地将预生产(uat)环境的回调分发至集成测试(sit)环境。使研发中对商城相关功能开发测试前移至sit进行,并且不再受大量商品配置制约,节约大量的时间成本和经济成本。
26.本发明解决了不同环境使用相同app key和app secret对接第三方平台回调分发的方法,本发明基于java agent的技术注入过滤器方式不侵入业务系统,使该回调分发机制可适用于各种基于java web的系统中。
附图说明
27.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1是本发明第三方平台http回调分发方法的流程图。
29.图2是本发明第三方平台http回调分发系统的构架图。
30.图3是现有技术中应用调用平台以及第三方接口的时序图场景之一。
31.图4是现有技术中应用调用平台以及第三方接口的时序图场景之二。
32.图5是一个可能的实施例中回调分发方法的流程图。
33.图6是电子设备的系统架构图。
具体实施方式
34.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.名词解释:
36.app key:api接口验证序列号;
37.app secret:api密钥;
38.如图1所示的本发明第三方平台http回调分发方法,包括:
39.根据平台接口和第三方接口之间的请求与响应,或根据应用与平台接口之间的请求与响应,确定业务对象唯一标识;
40.基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,从平台接口的请求或响应中读取业务对象唯一标识,将该业务对象唯一标识发送给回调分发服务;
41.回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,读取业务对象唯一标识,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境。
42.优选的,在平台接口与第三方接口的请求与响应中,如果存在一个字段对两次调用匹配,即标识两次调用处理的是同一个业务对象,那么该字段称为业务对象唯一标识。示例性的:调用一次请求,调用一次响应,上述两次调用中处理的是同一个业务对象,那么该字段称为业务对象唯一标识。
43.优选的,在应用与平台接口之间的请求与响应中,如果存在一个字段对两次调用匹配,即标识两次调用处理的是同一个业务对象,那么该字段称为业务对象唯一标识。
44.优选的,平台接口的url匹配规则,具体为:采用ant-style path模式匹配规则;
45.第三方接口的url匹配规则,具体为:采用ant-style path模式匹配规则。
46.优选的,ant-style path模式采用apache ant定义的路径匹配模式,利用通配符进行匹配。
47.优选的,基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,如果匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,将该业务对象唯一标识发送给回调分发服务,groovy脚本的作用是在不重新编译代码、不重启服务的情况下从http请求或响应对象中获取业务对象唯一标识。
48.优选的,回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,若匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境,groovy脚本的作用是在不重新编译代码、不重启服务的情况下从http请求或响应对象中获取业务对象唯一标识。
49.对于本实施例公开的方法步骤,出于简单描述的目的将方法步骤表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
50.如图2所示的本发明第三方平台http回调分发系统的构架图,具体包括:
51.业务对象唯一标识确定模块,用于根据平台接口和第三方接口之间的请求与响应,或根据应用与平台接口之间的请求与响应,确定业务对象唯一标识;
52.http请求拦截模块,基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,从平台接口的请求或响应中读取业务对象唯一标识,将该业务对象唯一标识发送给回调分发服务;
53.回调请求分发模块,回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,读取业务对象唯一标识,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境。
54.值得注意的是,虽然在本系统中只披露了业务对象唯一标识确定模块、http请求拦截模块和回调请求分发模块,但并不意味着本系统的组成仅仅局限于上述基本功能模块,相反,本发明所要表达的意思是:在上述基本功能模块的基础之上本领域技术人员可以结合现有技术任意添加一个或多个功能模块,形成无穷多个实施例或技术方案,也就是说本系统是开放式而非封闭式的,不能因为本实施例仅仅披露了个别基本功能模块,就认为本发明权利要求的保护范围局限于所公开的基本功能模块。同时,为了描述的方便,描述以上装置时以功能分为各种单元、模块分别描述。当然在实施本发明时可以把各单元、模块的功能在同一个或多个软件和/或硬件中实现。
55.以上所描述的系统实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造
性劳动的情况下,即可以理解并实施。
56.如图3和图4所示的现有技术中应用调用平台以及第三方接口具体应用场景:在图3中,应用调用平台接口a,平台接口a会调用第三方平台接口a',第三方平台接口a'在启动对业务的异步处理流程后,对平台的请求给出响应。第三方平台的异步处理流程在结束后会调用平台接口a",将处理结果返回给平台。应用请求接口a的请求消息与第三方平台回调平台接口a"的请求消息中必有一个字段能够对将此二次调用配对,即标识两次调用处理的是同一个业务对象,在本发明中将该字段称为“业务对象唯一标识”。
57.在图4中,应用调用平台接口a,接着应用调用第三方平台接口a',第三方平台a'会调用平台接口a"。其中平台接口a的请求或响应与第三方平台调用平台接口a"的请求中必有一个字段将此二次调用配对,即标识两次调用处理的是同一个业务对象,在本发明中将该字段称为“业务对象唯一标识”。
58.上述两种回调场景覆盖了日常对接第三方平台的各种回调场景,例如订单支付回调,用户绑定解绑回调,无感登录回调等。
59.如图5所示的一个可能的实施例:当平台的生产环境与测试环境使用同一套app key和app secret对接第三方平台时,在现有技术的基础之上增加回调分发规则配置系统、http请求拦截agent、回调分发服务。
60.回调分发规则配置系统,配置回调分发规则。一条回调分发规则由4部分组成,分别是:
61.(1)接口a的url匹配规则,采用ant-style path模式匹配规则;
62.(2)配置从接口a请求或响应中读取业务对象唯一标识的groovy脚本;
63.(3)配置接口a"的url匹配规则,采用ant-style path模式匹配规则;
64.(4)配置从接口a"请求中读取业务对象唯一标识的groovy脚本。
65.规则配置完成后,分发给“http请求拦截agent”和“回调分发服务”;系统也提供查询回调分发规则的接口供“http请求拦截agent”和“回调分发服务”使用。
66.ant-style path模式是apache ant定义的路径匹配模式,模式定义如下:
67.?匹配任何单字符
68.*匹配0或任意数量字符
69.**匹配0或更多目录
70.示例性的:
71./app/p?ttern可以匹配/app/pattern和/app/pxttern,但不能匹配/app/pwattern和/app/pttern。
72./cp/radio/*.doc匹配/cp/radio路径下所有的.doc文件。
73./cp/radio/**/*.jsp匹配/cp/radio/及其所有子目录下的.jsp文件。
74.利用ant-style path模式,可以灵活定义对http请求path的匹配规则,识别出http请求拦截agent和回调分发服务需要拦截的http请求路径。
75.groovy是用于java虚拟机的一种敏捷的动态语言,其使用方式与java基本相同,易于与java代码互操作。因每个接口的请求和响应的数据结构都不相同,本发明中使用groovy主要考虑其上述特性,可以为每个接口编写一小段groovy脚本,在不重新编译代码、不重启服务的情况下从http请求或响应对象中获取业务对象唯一标识。
76.http请求拦截agent:http请求拦截agent是基于java agent技术,负责匹配测试环境的接口a,并从接口a的请求或响应中读取业务对象唯一标识。测试环境启动时同步启动http请求拦截agent。http请求拦截agent从回调分发规则配置系统读取所有回调分发规则,并向平台注入一个过滤器拦截所有到平台的请求。将分发规则的“接口a的url匹配规则”与当前请求进行匹配,若匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,将该业务对象唯一标识发送给回调分发服务。
77.回调分发服务:回调分发服务接收所有来自第三方平台的回调请求,将分发规则的“接口a"的url匹配规则”与当前请求进行匹配,若匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,若读取到的业务对象唯一标识是前述http请求拦截agent所发送的,将该回调请求分发给平台测试环境,否则分发给平台生产环境。
78.本发明还提供了一个基于车联网和电商平台的实施例:车联网云平台(我方的平台)对接电商平台(第三方平台),电商平台为车联网云平台提供商品信息、订单购买、支付等接口,车机(我方的应用)通过访问车联网云平台接口完成商品购买过程。由于商品涉及多供应商,例如流量类商品涉及电信运营商开通流量包,影视会员商品涉及影视平台为用户开通vip,每个商品都需经过大量配置甚至代码实现才能变得可用。目前拥有完整商品体系的环境是车联网云平台的生产(prod)环境和预生产(uat)环境,在集成测试(sit)环境因配置商品的巨大工作量,尚未有完整的商品体系,通过对本发明的具体实施应用,能够妥善地将预生产(uat)环境的回调分发至集成测试(sit)环境,使研发中对商城相关功能开发测试前移至sit进行,并且不再受大量商品配置制约,节约的时间成本和经济成本可以百万计。
79.如图6所示,本发明还公开了与第三方平台http回调分发方法、系统对应的电子设备和存储介质:
80.一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行第三方平台http回调分发方法的步骤。
81.一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述计算机程序在所述电子设备上运行时,使得电子设备执行第三方平台http回调分发方法的步骤。
82.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
83.电子设备包括硬件层,运行在硬件层之上的操作系统层,以及运行在操作系统上的应用层。该硬件层包括中央处理器(cpu,central processing unit)、内存管理单元(mmu,memory management unit)和内存等硬件。该操作系统可以是任意一种或多种通过进程(process)实现电子设备控制的计算机操作系统,例如,linux操作系统、unix操作系统、android操作系统、ios操作系统或windows操作系统等。并且在本发明实施例中该电子设备可以是智能手机、平板电脑等手持设备,也可以是桌面计算机、便携式计算机等电子设备,本发明实施例中并未特别限定。
84.本发明实施例中的电子设备控制的执行主体可以是电子设备,或者是电子设备中能够调用程序并执行程序的功能模块。电子设备可以获取到存储介质对应的固件,存储介质对应的固件由供应商提供,不同存储介质对应的固件可以相同可以不同,在此不做限定。电子设备获取到存储介质对应的固件后,可以将该存储介质对应的固件写入存储介质中,具体地是往该存储介质中烧入该存储介质对应固件。将固件烧入存储介质的过程可以采用现有技术实现,在本发明实施例中不做赘述。
85.电子设备还可以获取到存储介质对应的重置命令,存储介质对应的重置命令由供应商提供,不同存储介质对应的重置命令可以相同可以不同,在此不做限定。
86.此时电子设备的存储介质为写入了对应的固件的存储介质,电子设备可以在写入了对应的固件的存储介质中响应该存储介质对应的重置命令,从而电子设备根据存储介质对应的重置命令,对该写入对应的固件的存储介质进行重置。根据重置命令对存储介质进行重置的过程可以现有技术实现,在本发明实施例中不做赘述。
87.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
88.需要说明的是,本说明书与权利要求中使用了某些词汇来指称特定元件。本领域技术人员应可以理解,车辆制造商可能会用不同名词来称呼同一个元件。本说明书与权利要求并不以名词的差异来作为区分元件的方式,而是以元件在功能上的差异作为区分的准则。如通篇说明书及权利要求当中所提及的“包含”或“包括”为一开放式用语,故其应被理解成“包括但不限定于”。后续将对实施本发明的较佳实施方式进行描述说明,但是所述说明是以说明书的一般原则为目的,并非用于限定本发明的范围。本发明的保护范围当根据其所附的权利要求所界定者为准。
89.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。
90.本发明可用于众多通用或专用的计算系统环境或配置中,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
91.本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
92.在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指
结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
93.另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
94.在本发明所提供的几个实施例中,应该理解到,所揭示的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,由所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
95.另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
96.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
97.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
技术特征:1.一种第三方平台http回调分发方法,其特征在于,包括:根据平台接口和第三方接口之间的请求与响应,或根据应用与平台接口之间的请求与响应,确定业务对象唯一标识;基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,从平台接口的请求或响应中读取业务对象唯一标识,将该业务对象唯一标识发送给回调分发服务;所述回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,读取业务对象唯一标识,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境。2.根据权利要求1所述的第三方平台http回调分发方法,其特征在于,在平台接口与第三方接口的请求与响应中,如果存在一个字段对两次调用匹配,即标识两次调用处理的是同一个业务对象,那么该字段称为业务对象唯一标识。3.根据权利要求1所述的第三方平台http回调分发方法,其特征在于,在应用与平台接口之间的请求与响应中,如果存在一个字段对两次调用匹配,即标识两次调用处理的是同一个业务对象,那么该字段称为业务对象唯一标识。4.根据权利要求1所述的第三方平台http回调分发方法,其特征在于,所述平台接口的url匹配规则,具体为:采用ant-style path模式匹配规则;所述第三方接口的url匹配规则,具体为:采用ant-style path模式匹配规则。5.根据权利要求4所述的第三方平台http回调分发方法,其特征在于,ant-style path模式采用apache ant定义的路径匹配模式,利用通配符进行匹配。6.根据权利要求1所述的第三方平台http回调分发方法,其特征在于,基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,如果匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,将该业务对象唯一标识发送给回调分发服务,所述groovy脚本的作用是在不重新编译代码、不重启服务的情况下从http请求或响应对象中获取业务对象唯一标识。7.根据权利要求1所述的第三方平台http回调分发方法,其特征在于,所述回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,若匹配成功,则对该请求执行读取业务对象唯一标识的groovy脚本,如果该业务对象唯一标识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境,所述groovy脚本的作用是在不重新编译代码、不重启服务的情况下从http请求或响应对象中获取业务对象唯一标识。8.一种第三方平台http回调分发系统,其特征在于,具体包括:业务对象唯一标识确定模块,用于根据平台接口和第三方接口之间的请求与响应,或根据应用与平台接口之间的请求与响应,确定业务对象唯一标识;http请求拦截模块,基于java agent原理,进行http请求拦截,按照平台接口的url匹配规则与当前请求进行匹配,从平台接口的请求或响应中读取业务对象唯一标识,将该业务对象唯一标识发送给回调分发服务;回调请求分发模块,回调分发服务接收所有来自第三方平台的回调请求,按照第三方接口的url匹配规则与当前请求进行匹配,读取业务对象唯一标识,如果该业务对象唯一标
识来自http请求拦截,则将该回调请求分发给平台测试环境,否则分发给平台生产环境。9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至7中任一项所述方法的步骤。10.一种计算机可读存储介质,其特征在于,其存储有可由电子设备执行的计算机程序,当所述计算机程序在所述电子设备上运行时,使得所述电子设备执行权利要求1至7中任一项所述方法的步骤。
技术总结本发明公开了一种第三方平台HTTP回调分发方法、系统、电子设备和存储介质,方法步骤包括确定业务对象唯一标识、进行HTTP请求拦截,按照平台接口的URL匹配规则与当前请求进行匹配,进行回调分发服务;读取业务对象唯一标识,将回调请求分发给平台测试环境。本发明基于JavaAgent技术,具有一定的通用性,在Java Web应用中,使测试环境和生产环境可以共用同一套API接口验证序列号App Key和API密钥App Secret。在研发中对商城相关功能开发测试前移至SIT进行,并且不再受大量商品配置制约,节约大量的时间成本和经济成本,基于Java Agent的技术注入过滤器方式不侵入业务系统,回调分发机制可适用于各种基于Java Web的系统中。Web的系统中。Web的系统中。
技术研发人员:解慧英
受保护的技术使用者:中国第一汽车股份有限公司
技术研发日:2022.07.08
技术公布日:2022/11/1