CN118037374A - 订单处理方法、装置、存储介质及电子设备 - Google Patents

订单处理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN118037374A
CN118037374A CN202211382962.9A CN202211382962A CN118037374A CN 118037374 A CN118037374 A CN 118037374A CN 202211382962 A CN202211382962 A CN 202211382962A CN 118037374 A CN118037374 A CN 118037374A
Authority
CN
China
Prior art keywords
order
processing
request
identifier
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211382962.9A
Other languages
English (en)
Inventor
邱吉胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211382962.9A priority Critical patent/CN118037374A/zh
Publication of CN118037374A publication Critical patent/CN118037374A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请的实施例公开了一种订单处理方法、装置、存储介质及电子设备。该订单处理方法通过检测针对订单的订单请求是否是针对订单的非首次订单请求,得到检测结果;若检测结果表征订单请求是针对订单的非首次订单请求,则复用为首次订单请求所分配的订单标识;基于订单标识向处理请求生成方发送订单请求,以使处理请求生成方生成与订单标识对应的处理标识,并基于处理标识向订单处理方发送处理请求,并由订单处理方基于处理请求处理订单。使得订单请求生成方在对同一订单重复发出订单请求时,不用重新更换订单标识,简化订单请求生成方接入订单处理方提供的订单处理功能的成本,降低订单请求生成方的业务操作复杂程度。

Description

订单处理方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种订单处理方法、装置、计算机可读存储介质及电子设备。
背景技术
随着互联网的飞速发展,网上商城因其便利、实惠等诸多优势,越来越受商家和买家的钟爱。为了满足用户的需求,方便用户消费,网上商城都会接入第三方支付平台进行订单支付处理、订单退款处理等。
在进行上述订单的金额交易时,需要订单处理过程中的相关数据符合交易规则,以保证金额交易的准确性,但是,这也导致商家和买家的操作复杂度增加。
发明内容
为解决上述技术问题,本申请的实施例提供了一种订单处理方法、装置、计算机可读存储介质、电子设备及计算机程序产品。
根据本申请实施例的一个方面,提供了一种订单处理方法,包括:生成针对订单的订单请求,所述订单请求用于指示对所述订单进行处理;若检测到所述订单为订单记录中含有的订单,则确认所述订单请求是针对所述订单的非首次订单请求;其中,所述订单记录是当前时刻之前的时间段内所记录的订单;复用为所述订单对应的首次订单请求所分配的订单标识,以使所述订单请求中携带所述订单标识;向处理请求生成方发送携带有所述订单标识的订单请求,以使所述处理请求生成方生成与所述订单标识对应的处理标识,并向订单处理方发送携带有所述处理标识向发送处理请求,并由所述订单处理方基于所述处理请求处理所述订单。
根据本申请实施例的一个方面,提供了另一种订单处理方法,包括:接收订单请求生成方发送的针对订单的订单请求;其中,所述订单为订单记录中含有的订单,所述订单请求是针对所述订单的非首次订单请求,所述订单请求的订单标识复用所述订单对应的首次订单请求所分配的订单标识;生成与所述订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单。
根据本申请实施例的一个方面,提供了又一种订单处理方法,包括:获取针对订单的订单请求,所述订单请求用于指示对所述订单进行处理;若检测到所述订单为订单记录中含有的订单,则确认所述订单请求是针对所述订单的非首次订单请求;其中,所述订单记录是当前时刻之前的时间段内所记录的订单;复用为所述订单对应的首次订单请求所分配的订单标识,并生成与所述订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单。
根据本申请实施例的一个方面,提供了一种订单处理装置,包括:订单请求生成模块,配置为生成针对订单的订单请求,所述订单请求用于指示对所述订单进行处理;订单请求检测模块,配置为若检测到所述订单为订单记录中含有的订单,则确认所述订单请求是针对所述订单的非首次订单请求;其中,所述订单记录是当前时刻之前的时间段内所记录的订单;订单标识复用模块,配置为复用为所述订单对应的首次订单请求所分配的订单标识,以使所述订单请求中携带所述订单标识;订单请求发送模块,配置为向处理请求生成方发送携带有所述订单标识的订单请求,以使所述处理请求生成方生成与所述订单标识对应的处理标识,并向订单处理方发送携带有所述处理标识向发送处理请求,并由所述订单处理方基于所述处理请求处理所述订单。
根据本申请实施例的一个方面,提供了另一种订单处理装置,包括:订单请求接收模块,配置为接收订单请求生成方发送的针对订单的订单请求;其中,所述订单为订单记录中含有的订单,所述订单请求是针对所述订单的非首次订单请求,所述订单请求的订单标识复用所述订单对应的首次订单请求所分配的订单标识;处理标识生成模块,配置为生成与所述订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;处理请求发送模块,配置为向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的订单处理方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:处理器;以及存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的订单处理方法。
根据本申请实施例的一个方面,还提供了一种计算机程序产品,计算机程序产品包括计算机指令,计算机指令在被处理器执行时用于实现如上所述的订单处理方法。
在本申请的实施例提供的技术方案中,通过订单请求生成方在检测到订单请求是针对订单的非首次订单请求时,复用为首次订单请求所分配的订单标识,然后,基于订单标识向处理请求生成方发送订单请求,以使处理请求生成方生成与订单标识对应的处理标识,并基于处理标识向订单处理方发送处理请求,由订单处理方基于处理请求处理订单,使得订单请求生成方在对同一订单重复发出订单请求时,不用重新更换订单标识,使得订单请求生成方不用维护一个订单映射多个订单标识的复杂逻辑,简化订单请求生成方接入订单处理方提供的订单处理功能的成本,降低订单请求生成方的业务操作复杂程度。并通过在处理请求生成方对订单的每次订单请求所对应的处理标识进行管理,消除了订单请求生成方在对订单发出重复的订单请求时对处理逻辑的感知,提高了订单请求生成方的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是相关技术中进行订单处理的流程图;
图2是本申请涉及的实施环境的示意图;
图3是本申请的一示例性实施例示出的订单处理方法的流程图;
图4是本申请的一示例性实施例提供的生成订单请求的示意图;
图5是本申请的一示例性实施例提供的获取订单记录的示意图;
图6是本申请的一示例性实施例提供的订单处理方法的示意图;
图7是本申请的一示例性实施例提供的获取页面操作记录的示意图;
图8是本申请的另一示例性实施例示出的订单处理方法的流程图;
图9是本申请的另一示例性实施例提供的订单处理方法的示意图;
图10是本申请的一示例性实施例提供的对订单进行异常处理的示意图;
图11是本申请的一示例性实施例提供的渠道网关的类图;
图12是本申请的另一示例性实施例示出的订单处理方法的流程图;
图13是本申请的一示例性实施例示出的订单处理装置的框图;
图14是本申请的另一示例性实施例示出的订单处理装置的框图;
图15是本申请的又一示例性实施例示出的订单处理装置的框图;
图16示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面是对本申请涉及的几个名词进行的介绍和解释:
应用程序编程接口(Application Programming Interface,API):是预先设定的函数,其作用是在无需访问源码与了解软硬件内部架构的情况下,提供应用程序的使用权限给他人使用或者开发。例如,通过支付程序中的支付、退款、订单查询、订单关闭等API函数,以实现支付功能、退款功能、订单查询功能、订单关闭功能等。
幂等性:一个子程序可以被多次执行,而不会对系统造成不期望的结果。例如,用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次请求而产生异常。
相关技术中,某个订单的订单请求已经在支付平台处理失败后,当商家再次使用该订单请求(不改变请求标识)重新调用支付平台的相关API时,支付平台会直接返回处理失败信息给商家,不会继续将该订单请求转发给底层的支付渠道进行重试,需要商家生成请求标识不同的订单请求才能重新调用支付平台的相关API,从而避免该订单被多次成功执行,以保证该笔订单的幂等性。
例如,请参阅图1,图1是相关技术中进行订单处理的流程图,如图1所示,该流程包括步骤1:商家根据买家的下单操作向支付平台发送支付订单请求,该支付订单请求中携带有订单标识A01;步骤2:支付平台生成支付订单请求对应的支付处理请求,该支付处理请求中携带有处理标识P01,将该支付处理请求转发给对应的支付渠道;步骤3:支付渠道返回支付失败的信息提示;步骤4:商家根据买家的重复下单操作,向支付平台重新发送支付订单请求,该支付订单请求中携带有订单标识A02;步骤5:支付平台生成重新接收的支付订单请求对应的支付处理请求,该支付处理请求中携带有处理标识P02,将该支付处理请求转发给对应的支付渠道,以使支付渠道对支付业务进行重试。
由此可见,图1提供的订单处理方法为了保证订单支付的准确性,需要对支付过程进行强幂等性控制,在对同一订单进行重复支付请求时,要求商家侧重新生成新的订单请求,这不仅增加了买家后续对于订单查询的复杂度,还导致商家侧需要维护订单流水号和发送给支付平台的订单请求的订单标识之间一对多的关系,加大了商家侧对接支付平台的难度。
基于此,为了在保证支付的准确性的前提下,降低商家和买家的操作复杂度,本申请的实施例提出一种订单处理方法、装置、计算机可读存储介质、电子设备及计算机程序产品。
下面对本申请实施例所提供的订单处理方法进行说明。
请参阅图2,图2是本申请中订单处理方法涉及的一种实施环境的示意图。如图2所示,该实施环境包括:终端210、订单请求生成方220、处理请求生成方230、订单处理方240。终端210与订单请求生成方220之间、订单请求生成方220与处理请求生成方230之间以及处理请求生成方230与订单处理方220之间可以通过有线或无线网络进行连接,本申请在此不做限制。
在一些实施方式中,终端210上安装由订单请求生成方220提供服务的目标应用,终端210与订单请求生成方220之间通过该目标应用进行交互。可选地,该目标应用能够提供订单处理功能,如支付业务、退款业务、订单查询业务等。可选地,该目标应用还能够具有其他功能,例如,点评功能、购物功能或者社交功能等。可选地,该目标应用为购物应用、浏览器、内容分享应用或者其他应用等,本申请在此不做限制。
在一些实施方式中,该终端210是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表或者车载终端等,但并不局限于此。
在一些实施方式中,订单请求生成方220对接有订单处理方240提供的订单处理功能,处理请求生成方230为订单请求生成方220提供订单处理功能的对接服务。订单请求生成方220为该目标应用的后台服务器或者为提供云计算以及云存储等服务的云服务器等,处理请求生成方230为提供对接服务的后台服务器或者为提供云计算以及云存储等服务的云服务器等,订单处理方240为提供订单处理功能的后台服务器或者为提供云计算以及云存储等服务的云服务器等,本申请在此不做限制。
可选地,服务器是独立的物理服务器,或者,服务器是多个物理服务器构成的服务器集群或者分布式系统,或者,该服务器是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
示例性地,通过处理请求生成方230将订单处理方240提供的订单处理功能接入至订单请求生成方220。终端210上安装的目标应用接收用户针对订单执行的订单提交操作,将订单对应的订单参数发送给订单请求生成方220,订单请求生成方220根据订单参数向处理请求生成方230发送携带有订单标识的订单请求,处理请求生成方230根据接收到的订单请求向订单处理方240发送携带有处理标识的处理请求,使得订单处理方240根据该处理请求进行订单处理,其中,订单处理过程中通过订单标识和处理标识对业务的相关处理数据进行管理。
可选地,订单请求生成方220和处理请求生成方230可以相互独立部署,订单请求生成方220和处理请求生成方230也可以聚合部署,本申请对此不进行限制。
以订单请求生成方220和处理请求生成方230相互独立部署为例对本申请提供的订单处理方法进行说明。
请参阅图3,图3是本申请的一示例性实施例示出的订单处理方法的流程图。该订单处理方法可以应用于图2所示的实施环境,并由该实施环境中的订单请求生成方220具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
下面以订单请求生成方作为具体的执行主体来对本申请实施例提出的订单处理方法进行详细介绍。
如图3所示,在一示例性的实施例中,订单处理方法至少包括步骤S310至步骤S340,详细介绍如下:
步骤S310,生成针对订单的订单请求,所述订单请求用于指示对所述订单进行处理。
需要说明的是,本申请涉及的订单需要使用订单处理方提供的订单处理功能且需要进行幂等性控制。订单请求生成方接入有订单处理功能,例如,订单请求生成方接入的订单处理功能包括支付功能、退款功能等,则订单的订单请求可以包括支付订单请求和订单退款请求。
示例性地,订单请求生成方可以通过终端上的目标应用向用户显示订单的订单编辑页面,通过接收用户针对该订单编辑页面的输入操作,生成针对订单的订单请求。
例如,订单请求生成方接入的订单处理功能为聚合支付功能,该聚合支付功能聚合有多种支付渠道,每种支付渠道对应不同的支付平台。请参阅图4,图4为一实施例示出的生成订单请求的示意图,如图4所示,终端上的目标应用向用户显示订单编辑页面,该订单编辑页面包含有支付参数编辑区域和支付渠道选择区域,终端上的目标应用响应于用户针对支付参数编辑区域执行的参数编辑操作,以对支付参数进行修改,并响应于用户针对支付渠道选择区域执行的渠道选择操作,以确认目标支付渠道。然后,终端将支付参数、目标支付渠道等订单参数发送给订单请求生成方,订单请求生成方对支付参数、目标支付渠道等订单参数验证通过后,再基于支付参数、目标支付渠道等订单参数生成支付业务的订单请求。
步骤S320,若检测到所述订单为订单记录中含有的订单,则确认所述订单请求是针对所述订单的非首次订单请求;其中,所述订单记录是当前时刻之前的时间段内所记录的订单。
需要说明的是,订单请求生成方可以针对同一订单生成多次订单请求,这些订单请求在可以被正常处理时,其得到的处理结果是相同的。
示例性地,订单记录中存储有各个订单的订单参数,可以将订单的订单参数相互匹配的订单划分为同一订单。例如,可以是两个订单的订单参数全部一致,则这两个订单为同一订单;也可以是两个订单的订单参数中的关键参数一致,则这两个订单为同一订单,本申请对此不进行限制。
由于订单的每个订单请求不一定会被正常处理,可能会出现处理失败的情况,因此,为了能够成功处理订单请求,以完成订单请求对应的订单,可以通过订单请求生成方重复生成针对订单的订单请求。
在一些实施方式中,可以是订单请求生成方在生成订单的首次订单请求后,检测该订单是否满足请求重复生成条件,若满足则重新生成该订单的订单请求。例如,可以是在检测到用户针对订单执行了请求重试操作后,则判断为订单满足请求重复生成条件;也可以是检测到在预设时间内,针对订单的首次订单请求仍未处理成功时,则判断为订单满足请求重复生成条件,本申请对此不进行限制。
识别订单的订单请求是否为非首次订单请求,即识别接收到的订单请求是针对订单第一次生成的请求,还是重复生成的请求。
示例性地,可以对每个订单请求的订单进行记录,得到订单记录,然后检测到订单是否为订单记录中含有的订单,若当前生成的订单请求对应的订单为订单记录中含有的订单,则当前生成的订单请求为该订单的非首次订单请求。
例如,订单请求生成方为终端对应的用户提供订单编辑页面,以通过订单编辑页面获取用户的输入操作,订单请求生成方可以根据这些输入操作生成对应的订单请求,并对生成的订单请求对应的订单进行记录,得到订单记录。
示例性地,请参阅图5,图5为一示例性实施例提供的获取订单记录的示意图。如图5所示,用户基于终端显示的订单编辑页面执行输入操作,终端响应于用户的输入操作向订单请求生成方发送对应的操作信息,订单请求生成方基于这些操作信息判断是否需要生成对应的请求,如终端发送的操作信息表征用户触发了订单编辑页面中的“提交”按钮,则判断为需要生成对应的订单请求。若检测到订单请求生成方执行了请求生成操作,则将对应的订单的相关参数存储至订单记录中,以通过查询订单记录得到订单请求生成方在预设时间段内处理的订单。例如,订单记录中可以存储订单对应的订单参数、订单对应的用户信息、订单创建的时刻等信息。可以理解的是,实际应用场景的订单记录中可以包含比上述示例性内容更多或者更少的内容,具体可以基于实际应用情况进行灵活选择,本申请对此不进行限制。
然后,检测当前生成的订单请求对应的订单是否为订单记录中含有的订单。
订单记录中存储有订单请求生成方生成的订单信息,通过将订单请求对应的订单和订单记录中的订单进行对比,以检测订单请求生成方当前生成的订单请求是否为该订单的非首次订单请求。
示例性地,订单请求是基于用户针对目标应用提供的订单编辑页面的输入操作生成的,还可以检测用户针对目标应用输入的操作内容检测订单请求是否是针对订单的非首次订单请求,例如,用户针对订单在订单编辑页面中执行了订单提交操作后,检测在预设时间段内是否在订单编辑页面中再次执行了订单提交操作,若再次执行了订单提交操作,则订单请求生成方基于用户再次处理的订单提交操作所生成的订单请求为订单的非首次订单请求。检测订单请求是否是针对订单的非首次订单请求的方法可以根据实际应用情况进行选择,本申请对此不进行限制。
步骤S330,复用为所述订单对应的首次订单请求所分配的订单标识,以使所述订单请求中携带所述订单标识。
若在当前生成的订单请求之前,订单请求生成方已经针对同一订单生成过订单请求,则当前生成的订单请求为该订单的非首次订单请求,可以复用为首次订单请求分配的订单标识。
可以理解的是,通过将首次订单请求所分配的订单标识作为当前生成的订单请求的订单标识,使得订单请求生成方基于订单标识对订单的订单请求进行管理时,由于同一订单的每个订单请求均是使用相同的订单标识,因此订单请求生成方的一个订单仅对应一个订单标识,即订单请求生成方只需维护一个订单和一个订单标识之间对应关系即可,避免订单请求生成方需要维护一个订单映射多个订单标识的复杂逻辑的情况。
步骤S340,基于订单标识向处理请求生成方发送订单请求,以使处理请求生成方生成与订单标识对应的处理标识,并基于处理标识向订单处理方发送处理请求,并由订单处理方基于处理请求处理订单。
处理请求生成方与订单处理方进行通信,以将订单处理方提供的订单处理功能接入订单请求生成方。
订单请求生成方在为订单请求分配了订单标识后,将携带该订单标识的订单请求发送给处理请求生成方,以使处理请求生成方接收到订单请求生成方发送的订单请求后,提取该订单请求中携带的订单标识,生成该订单标识对应的处理标识,并基于处理标识向订单处理方发送处理请求,由订单处理方基于处理请求处理订单。需要注意的是,基于该订单标识每次生成的处理标识不同。
举例说明,如图6所示,订单请求生成方为商家对应的服务器,处理请求生成方为支付平台,具体为支付功能提供商对应的服务器,订单处理的步骤包括:步骤1:商家根据买家针对订单的支付操作向支付平台发送支付订单请求,该支付订单请求中携带有订单标识A01;步骤2:支付平台生成支付订单请求对应的支付处理请求,该支付处理请求中携带有处理标识P01,将该支付处理请求转发给对应的支付渠道;步骤3:支付渠道返回支付失败的信息提示;步骤4:商家根据买家针对该订单重复发起的支付操作,向支付平台重新发送支付订单请求,该支付订单请求中复用首次支付订单请求的订单标识A01;步骤5:支付平台生成重新接收的支付订单请求对应的支付处理请求,该支付处理请求中携带有处理标识P02,将该支付处理请求转发给对应的支付渠道,以使支付渠道对支付业务进行重试。
相关技术中,为了保证订单请求处理过程中的幂等性,需要对订单的每个订单请求分配不同的订单标识。而本申请检测到订单请求是针对订单的非首次订单请求时,复用为首次订单请求所分配的订单标识,然后,基于订单标识向处理请求生成方发送订单请求,以使处理请求生成方生成与订单标识对应的处理标识,并基于处理标识向订单处理方发送处理请求,由订单处理方基于处理请求处理订单,使得订单请求生成方在对同一订单重复发出订单请求时,不用重新更换订单标识,简化订单请求生成方接入订单处理方提供的订单处理功能的成本,降低订单请求生成方的业务操作复杂程度。
在一些实施方式中,在生成针对订单的订单请求之后,还包括;提取订单请求对应的订单的订单参数,得到第一订单参数,并提取订单记录中各个订单的订单参数,得到多个第二订单参数;分别对比第一订单参数和多个第二订单参数,得到订单请求对应的订单与订单记录中各个订单之间的匹配度;基于匹配度检测订单请求对应的订单是否为订单记录中含有的订单。
需要说明的是,订单参数用于限定订单的具体业务内容,例如,订单为支付业务时,订单参数包含支付金额、支付渠道、支付账户、支付商品名称、支付商品标识等;订单为退款业务时,订单参数包含退款金额、退款渠道、退款账户、退款商品名称、退款商品标识等。
提取订单请求对应的订单中含有的订单参数,得到第一订单参数,并提取订单记录中各个订单的订单参数,得到多个第二订单参数。
其中,在提取订单记录中各个订单的订单参数之前,可以根据订单请求所对应的订单的业务类型,对订单记录中的订单进行筛选,以提取筛选通过的订单的订单参数。例如,订单请求所对应的订单的业务类型为支付业务,则获取订单记录中业务类型为支付业务的订单作为候选订单,对比候选订单的订单参数和订单请求对应订单的订单参数,得到订单请求对应的订单与订单记录中候选订单之间的匹配度。
可以理解的是,订单请求对应的订单与订单记录中的订单之间的匹配度越高,则订单请求对应的订单与订单记录中的订单之间越相似,反之订单请求对应的订单与订单记录中的订单之间的匹配度越低,则订单请求对应的订单与订单记录中的订单之间越不相似。可以认为订单记录中匹配度大于预设匹配度阈值的订单与订单请求对应的订单为同一订单。
例如,订单参数包括多个参数项,分别对比第一订单参数和多个第二订单参数,得到订单请求对应的订单与订单记录中各个订单之间的匹配度,包括:分别从第一订单参数和多个第二订单参数中提取出每个参数项对应的参数值,并获取每个参数项对应的权重参数;计算第一订单参数和每个第二订单参数的相同参数项对应的参数值之间的相似度;用相同参数项对应的权重参数对相似度进行加权计算,得到相同参数项对应的加权值;基于第一订单参数和每个第二订单参数的相同参数项对应的加权值,分别计算得到订单请求对应的订单与订单记录中各个订单之间的匹配度。
对比第一订单参数与第二订单参数的每个参数项,得到每个参数项的参数项匹配度,基于参数项对应的权重参数对各个参数项匹配度进行加权计算,得到订单请求对应的订单与订单记录中的订单之间的匹配度。其中,参数项对应的权重参数用于表征该参数项的重要程度。
然后,基于匹配度检测订单记录中是否存在与订单请求匹配的请求。例如,可以基于匹配度与预设匹配度阈值之间的关系,检测订单记录中的请求与当前生成的订单请求是否匹配,其中,预设匹配度阈值可以是预先设置的,也可以是灵活计算的,如根据当前的订单类型、网络情况、用户的行为数据等计算当前订单请求对应的订单的预设匹配度阈值。
示例性地,在计算订单请求与订单记录中各个订单之间的匹配度之前,还可以判断订单请求对应订单的订单参数中的重要参数项内容与订单记录中各个订单的订单参数中的重要参数项内容是否一致,若一致则计算订单请求对应订单与订单记录中各个订单之间的匹配度,若不一致则直接判断为订单请求对应订单与订单记录中该订单不匹配,从而根据重要参数项内容对订单记录中各个订单预先进行一次筛选,以提高后续基于筛选后的订单记录判断当前生成的订单请求是否为对应订单的非首次订单请求的效率。
如果订单请求对应订单为订单记录中含有的订单,则表示订单请求生成方在生成该订单的订单请求之前,还生成过该订单的订单请求,即当前生成的订单请求为该订单的非首次订单请求。
如果订单请求对应订单不为订单记录中含有的订单,则表示订单请求生成方在生成该订单的订单请求之前,没有生成过该订单的订单请求,即当前生成的订单请求为该订单的首次订单请求。
可选地,也可以在订单请求对应订单的订单参数中的重要参数项内容与订单记录中各个订单的订单参数中的重要参数项内容一致时,直接判断为订单请求对应订单为订单记录中含有的订单,如订单请求为支付订单请求时,重要参数项内容为支付金额、支付渠道、支付商品名称、支付商品标识,分别判断订单请求对应订单的重要参数项内容与订单记录中各个订单的重要参数项内容之间是否一致,若订单记录中存在重要参数项内容与订单请求对应订单一致的订单,则表明该订单请求为订单的非首次订单请求;若订单记录中不存在重要参数项内容与订单请求一致的订单,则表明该订单请求为订单的首次订单请求。
在一些实施方式中,订单请求是基于订单编辑页面接收到的订单请求操作生成的,可以获取订单编辑页面对应的页面操作记录,并根据页面操作记录获取订单请求对应的订单请求操作的接收时刻,得到检测终止时刻,其中,页面操作记录用于存储订单编辑页面接收到的页面操作信息。然后,获取页面操作记录中在检测终止时刻之前接收到的订单请求操作的接收时刻,得到检测起始时刻。进一步地,基于页面操作记录检测检测终止时刻与检测起始时刻之间是否存在预设页面操作信息,若不存在预设页面操作信息,则订单请求是针对订单的非首次订单请求;若存在预设页面操作信息,则订单请求是针对订单的首次订单请求。
其中,该页面操作记录可以存储于终端,也可以存储于订单请求生成方,本申请对比不进行限制。
由于不是用户处理的每个输入操作均会由订单请求生成方生成请求,因此,终端也不是用户每处理一次输入操作就需要和订单请求生成方进行信令交互,则可以将页面操作记录存储于终端,以减少终端于订单请求生成方之间的信令交互次数。
例如,请参阅图7,图7一示例性实施例提供的获取页面操作记录的示意图。如图7所示,终端存储有页面操作记录,用于记录用户针对订单编辑页面处理的输入操作。用户处理的输入操作至少包括用于指示订单请求生成方生成订单请求的订单请求操作,如订单编辑页面部署有“提交”按钮,终端检测到该“提交”按钮被触发,则判断为用户执行了订单请求操作,对该订单请求操作进行记录,并向订单请求生成方发送该订单请求操作的订单的订单参数,以使订单请求生成方生成订单请求。可以理解的是,用户执行的输入操作还可以包括其他操作,如订单编辑页面还部署有“参数1”的输入框和“参数2”的输入框,用户执行的输入操作还可以包括参数1的参数修改操作和参数2的参数修改操作。
如图7所示,根据页面操作记录获取“提交”按钮被触发后的订单请求操作的接收时刻为9:04,则得到的检测终止时刻为9:04,然后,根据页面操作记录获取在检测终止时刻之前接收到的“提交”按钮被触发后的订单请求操作的接收时刻为9:01,则得到的检测起始时刻为9:01。然后,检测终止时刻9:04与检测起始时刻9:01之间是否存在预设页面操作信息,若不存在预设页面操作信息,则订单请求是针对订单的非首次订单请求;若存在预设页面操作信息,则订单请求是针对订单的首次订单请求。如预设页面操作信息包括参数1的参数修改操作,9:04与9:01之间含有的实际页面操作信息包括参数1的参数修改操作和参数2的参数修改操作,则订单请求是针对订单的首次订单请求。
其中,订单请求生成方可以通过查询终端存储的页面操作记录判断订单请求是否是针对订单的首次订单请求;或者终端在判断订单请求是否是针对订单的首次订单请求后,向订单请求生成方发送判断结果,本申请对此不进行限制。
请参阅图8,图8是本申请的一示例性实施例示出的订单处理方法的流程图。该订单处理方法可以应用于图2所示的实施环境,并由该实施环境中的处理请求生成方230具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
下面以处理请求生成方作为具体的处理主体来对本申请实施例提出的订单处理方法进行详细介绍。
如图8所示,在一示例性的实施例中,订单处理方法至少包括步骤S810至步骤S830,详细介绍如下:
步骤S810,接收订单请求生成方发送的针对订单的订单请求;其中,订单为订单记录中含有的订单,订单请求是针对订单的非首次订单请求,订单请求的订单标识复用订单对应的首次订单请求所分配的订单标识。
步骤S820,生成与订单标识对应的处理标识;其中,每个订单请求对应一个处理标识。
需要说明的是,处理标识用于识别当前接收的订单请求。
示例性地,处理请求生成方可以是调用序列号随机生成函数生成当前接收的订单请求的所对应的处理标识;还可以是获取当前接收的订单请求的订单标识对应的订单包含的所有已生成的处理标识,根据已生成的处理标识生成当前接收的订单请求所对应的处理标识。
例如,处理请求生成方在第一时刻接收到的订单请求的订单标识为A01,获取A01对应的所有已生成的处理标识为空,则表明该订单请求是订单的首次订单请求,调用序列号随机生成函数生成A01对应的处理标识为P01;然后,处理请求生成方在第二时刻接收到的订单请求的订单标识为A01,获取A01对应的所有已生成的处理标识为P01,则表明该订单请求是订单的非首次订单请求,根据P01生成A01对应的处理标识为P02。
在一些实施方式中,在生成与订单标识对应的处理标识之前,还可以获取订单所发起的订单请求的数量,如查询订单对应的处理标识的数量得到订单所发起的订单请求的数量,检测该数量与预设数量之间的关系,若数量超过预设数量,则不用再向订单处理方发送处理请求;若数量未超过预设数量,则基于所生成的处理标识向订单处理方发送处理请求,以使订单处理方基于处理请求处理订单,以避免由于对订单的盲目重试而导致的计算资源以及网络通信资源的浪费。
示例性地,生成与订单标识对应的处理标识,包括:基于订单标识查询标识列表,得到与订单标识关联的处理标识;其中,标识列表用于存储订单标识与处理标识之间的映射关系;若与订单标识对应的处理标识的数量小于预设数量,则生成与订单标识对应的处理标识。
例如,预设数量为5,处理请求生成方在第一时刻接收到的订单请求携带的订单标识为A01,通过A01查询标识列表,得到与查询标识列表关联的处理标识包括P01、P02、P03和P04,即订单标识对应的处理标识的数量为4,处理标识的数量小于预设数量,则生成与订单标识对应的处理标识为P05。处理请求生成方在第二时刻接收到的订单请求携带的订单标识为A01,通过A01查询标识列表,得到与查询标识列表关联的处理标识包括P01、P02、P03、P04和P05,即订单标识对应的处理标识的数量为5,处理标识的数量等于预设数量,则不再生成与订单标识对应的处理标识。
步骤S830,向订单处理方发送携带有处理标识的处理请求,以使订单处理方基于处理请求处理所述订单。
需要说明的是,处理请求用于请求订单处理方对订单进行处理。
示例性地,处理请求生成方可以获取订单处理方针对处理请求的数据格式要求,如数据格式要求包括处理请求的报文格式、报文长度、报文采用的传输协议等。处理请求生成方根据数据格式要求、处理标识、订单请求包含的订单的订单参数等生成处理请求,将该处理请求发送给订单处理方,以使订单处理方基于处理请求处理订单。
本申请通过为订单的非首次订单请求复用为首次订单请求所分配的订单标识,使得订单请求生成方在对同一订单重复发出订单请求时,不用重新更换订单标识,简化订单请求生成方接入订单处理方提供的订单处理功能的成本,降低订单请求生成方的业务操作复杂程度。进一步地,在处理请求生成方对订单的每次订单请求所对应的处理标识进行管理,消除了订单请求生成方在对订单发出重复的订单请求时对处理逻辑的感知,提高了订单请求生成方的使用体验。
在一些实施方式中,针对订单所发起的订单请求有多个,每个订单请求对应的处理标识设置有用于表征订单的处理状态;基于所生成的处理标识向订单处理方发送处理请求,以使订单处理方基于处理请求处理订单,包括:检测每个处理标识的处理状态中是否存在预设状态;其中,预设状态用于表征订单已处理成功;若不存在预设状态,则基于所生成的处理标识向订单处理方发送处理请求,以使订单处理方基于处理请求处理订单。
为了保证订单的幂等性,该订单只能被订单处理方成功处理一次,即该订单对应的处理标识中只能有一个处理标识的处理状态用于表征订单已处理成功。
因此,在基于所生成的处理标识向订单处理方发送处理请求之前,获取每次针对订单发出的订单请求对应的处理标识的处理状态,检测每个处理标识的处理状态中是否存在预设状态,若存在预设状态,表明当前该订单已经被订单处理方成功处理,则不用再向订单处理方发送处理请求;若不存在预设状态,表明当前该订单还未被订单处理方成功处理,则基于所生成的处理标识向订单处理方发送处理请求,以使订单处理方基于处理请求处理订单。
举例说明,请参阅图9,图9为一示例性实施例提供的订单处理方法的示意图。如图9所示,订单请求生成方为商家对应的服务器,处理请求生成方为聚合支付提供商对应的服务器。订单处理方法包括:1、用户针对订单的支付业务访问商家服务器,向商家服务器提交支付订单参数,商家服务器为支付订单参数分配订单标识,生成支付订单参数和订单标识对应的支付订单请求;2、将支付订单请求发送给聚合支付提供商服务器的下单接口;3、下单接口在订单信息存储单元存储该支付订单请求对应的相关信息,如该支付订单请求的支付处理标识、处理状态等;3、同时,商家服务器将支付订单请求发送给聚合支付提供商服务器的收银台前端;4、收银台前端将支付订单请求发送给对应的支付渠道的支付接口;5、支付接口将支付订单请求发送给支付控制单元;6、支付控制单元根据接收到的支付订单请求分配支付处理标识,基于支付处理标识调用渠道网关中对应的支付渠道;7、渠道网关调用该支付渠道获取渠道下单信息返回给终端;8、调用该支付渠道的页面显示信息,以基于渠道下单信息和页面显示信息在终端显示支付页面;9、用户针对支付页面执行订单支付;10、支付渠道返回支付业务的支付处理结果;11、渠道网关将支付处理结果返回给支付控制单元,以使处理请求生成方基于支付处理结果处理后续的相关操作,如向订单请求生成方返回支付处理结果。
进一步地,终端还可以向聚合支付提供商对应的服务器发送退款请求、查询请求等,本申请对比不进行限制。
在一些实施方式中,在基于所生成的处理标识向订单处理方发送处理请求,以使订单处理方基于处理请求处理订单之后,方法还包括:接收订单处理方基于处理请求返回的处理结果;基于预设订单标识与处理标识之间的映射关系以及处理请求对应的处理标识,得到与处理标识对应的订单标识;向订单标识对应的订单请求生成方返回处理结果。
处理结果可以包括订单是否处理成功、订单处理的相关参数等,本申请对此不进行限制。
处理请求生成方存储有订单标识与处理标识之间的映射关系,如订单标识与处理标识之间的映射关系可以表示为Fn<订单标识1,{处理标识1,…,处理标识N}>。订单处理方返回的处理结果中携带有该处理结果对应的处理请求的处理标识,通过该处理标识查询订单标识与处理标识之间的映射关系,得到处理结果对应的订单标识,进而向该订单标识对应的订单请求方生成方返回处理结果。
进一步地,订单请求方生成方可以根据返回的处理结果,对该处理结果对应的订单请求的终端发送信息提示,以通过信息提示告示用户订单的处理情况,并将该处理结果和该订单进行关联存储,便于后续对订单的处理数据进行查询。可选地,订单请求方生成方在生成针对订单的订单请求之前,查询该订单是否存在表征该订单已处理成功的处理结果,若存在则不再生成针对订单的订单请求,避免计算资源以及通信网络资源的浪费;若不存在则生成针对订单的订单请求。
在一些实施方式中,每个处理标识对应设置有处理状态;在接收订单处理方基于处理请求返回的处理结果之后,方法还包括:获取订单标识对应的每个处理标识的处理状态;检测处理结果所表征的订单的处理状态与每个处理标识所表征的订单的处理状态是否匹配;若不匹配,则对订单进行异常处理;若匹配,则基于处理结果所表征的订单的处理状态,修改处理请求对应的处理标识所表征的订单的处理状态。
订单请求生成方期望处理请求生成方可以对订单进行幂等性控制,因此处理请求生成方需要检测处理结果所表征的订单的处理状态与每个处理标识所表征的订单的处理状态是否匹配,以检测针对订单多次发送的订单请求的处理结果是否造成了不期望的结果。
示例性地,在本申请中期望订单处理方仅对订单成功处理一次即可,因此,若处理结果所表征的订单的处理状态与每个处理标识所表征的订单的处理状态不匹配,则表明订单处理方对订单成功处理了多次,造成了不期望的结果,所以需要对订单进行异常处理。若处理结果所表征的订单的处理状态与每个处理标识所表征的订单的处理状态匹配,则表明订单处理方对订单成功处理了一次,造成了期望的结果,所以基于处理结果所表征的订单的处理状态,修改处理请求对应的处理标识所表征的订单的处理状态。
在一些实施方式中,处理状态包括处理成功、处理失败和处理中;检测处理结果所表征的订单的处理状态与每个处理标识所表征的订单的处理状态是否匹配,包括:若处理结果表征的处理状态为订单已处理成功以及每个处理标识的处理状态含有处理成功,则判断为处理结果表征的处理状态与每个处理标识的处理状态不匹配;若不匹配,则对订单进行异常处理,包括:对订单进行恢复处理,并对含有处理状态为处理中的订单进行业务拦截处理。
需要说明的是,处理标识的处理状态为处理成功,则表明该处理标识所对应的处理请求已经被订单处理方成功处理;处理标识的处理状态为处理失败,则表明该处理标识所对应的处理请求没有被订单处理方成功处理;处理标识的处理状态为处理中,则表明该处理标识所对应的处理请求正在被订单处理方处理。
示例性地,订单为支付业务,处理业务生成方根据在第一时刻接收到的订单请求生成方针对订单发送的订单请求,向订单处理方发送了处理标识为P01的处理请求,由于订单处理方的系统故障,处理业务生成方在第一时刻后的预设时间内均未接收到订单处理方针对处理标识为P01的处理请求返回的处理结果,则处理业务生成方默认该处理标识为P01的处理请求未被成功处理,即P01对应的处理状态位处理失败。然后,处理业务生成方在第二时刻又接收到订单请求生成方针对订单重新发送的订单请求,通过查询P01的处理请求未被成功处理,向订单处理方发送了处理标识为P02的处理请求。
然后,订单处理方的系统恢复正常,成功处理了处理标识为P01的处理请求,并向处理业务生成方返回处理标识为P01的处理请求的处理结果,并成功处理了处理标识为P02的处理请求,并向处理业务生成方返回处理标识为P02的处理请求的处理结果。
这意味着处理业务生成方在向订单处理方发送了处理标识为P02的处理请求后,会接收到用于表征处理标识为P01的处理请求被成功处理的处理结果,则会对P01的处理状态修改为处理成功,且会接收到用于表征处理标识为P02的处理请求被成功处理的处理结果,则在对P02的处理状态进行修改时,由于已经存在P01的处理状态为处理成功,则判断为P02的处理结果表征的处理状态与P01的处理状态不匹配,需要对订单进行恢复处理,并对含有处理状态为处理中的订单进行业务拦截处理。
例如,请参阅图10,图10为一示例性实施例提供的对订单进行异常处理的示意图。如图10所示,订单请求生成方为商家对应的服务器,处理请求生成方为聚合支付提供商对应的服务器,聚合支付提供商对应的服务器中部署有支付控制单元和渠道网关。终端中安装的目标应用响应于用户针对订单的支付操作,向商家服务器发送需要支付的订单参数,商家服务器为订单参数分配订单标识,并根据订单参数和订单标识生成支付订单请求,将该支付订单请求发送给处理请求生成方。
然后,处理请求生成方的支付控制单元对接收的支付订单请求进行检测。示例性地,检测步骤包括但不限于:判断支付订单请求是否过期,例如,基于远程字典服务(RemoteDictionary Server,Redis)即检查支付订单请求的最后更新时间与当前时间的时间间隔是否已经达到预设的超时时间,其中,KEY为业务标识,VALUE为处理标识;判断支付订单请求是否支持重新处理,例如,检测该支付订单请求对应的处理标识的数量是否已经达到预设的数量阈值、检测该支付订单请求对应的商家服务器是否支持请求重新处理的策略等;判断支付订单请求上一个处理标识的处理状态是否表征该订单的支付业务被成功处理。进一步地,还可以对支付订单请求包含的支付订单参数进行校验,如支付金额、商家ID、商家名称、请求过期时间、支付成功回调地址、商品标题、商品名称、设备信息、分润信息等参数检查。
若支付订单请求检测的结果为通过,则生成该支付订单请求的处理标识,并基于处理标识生成支付处理请求,调用支付业务对应的支付渠道,以通过渠道网关将支付处理请求发送给对应的支付订单处理方。
将处理失败的支付处理请求的处理标识置入失败队列中,当接收到订单处理方返回的处理成功对应的处理标识处于失败队列中时,将此处理标识添加到冲正订单记录表,并标记为待确认。拦截冲正订单记录表中待确认的处理标识关联的订单标识的其他支付订单请求处理操作,如拦截支付处理请求的生成、支付处理请求的发送操作等,并检测该订单标识若存在第二笔处理成功的支付处理请求,则将冲正订单记录表中该处理标识的状态标记为待冲正。针对冲正订单记录表中状态标记为待冲正的处理标识发起退款请求,若退款成功则更新冲正订单记录表中该处理标识的状态标记为冲正成功。
其中,请参阅图11,图11为渠道网关的同一建模语言(Unified ModelingLanguage,UML)类图。如图11所示,渠道网关(PayService类)实现有多个渠道接口(如1PayService类、2PayService类),通过这些渠道接口将支付处理请求进行路由转发到具体底层支付通道(如1PayConfig类、2PayConfig类)进行处理,其中,PayContext类和PayService类存在聚合关系,PayContext类为渠道网关的相关配置信息。然后,收集底层支付通道的返回值(即处理结果),进行协议转换成标准协议后,将处理结果返回给到调用方(即处理请求生成方)。
以订单请求生成方220和处理请求生成方230聚合部署为例对本申请提供的订单处理方法进行说明。
请参阅图12,图12是本申请的一示例性实施例示出的订单处理方法的流程图。该订单处理方法可以应用于图2所示的实施环境,并由该实施环境中的订单请求生成方220和处理请求生成方230具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
下面以订单请求生成方和处理请求生成方作为具体的执行主体来对本申请实施例提出的订单处理方法进行详细介绍。
如图12所示,在一示例性的实施例中,订单处理方法至少包括:步骤S1210,获取针对订单的订单请求,订单请求用于指示对订单进行处理;步骤S1220,若检测到订单为订单记录中含有的订单,则确认订单请求是针对订单的非首次订单请求;其中,订单记录是当前时刻之前的时间段内所记录的订单;步骤S1230,复用为订单对应的首次订单请求所分配的订单标识,并生成与订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;步骤S1240,向订单处理方发送携带有处理标识的处理请求,以使订单处理方基于处理请求处理订单。
可以理解的是,该订单处理方法的具体实现方式可以参见上述其他实施例中记载的订单处理方法,本申请在此不做赘述。
本申请实施例通过订单请求生成方在检测到订单请求是针对订单的非首次订单请求时,复用为首次订单请求所分配的订单标识,然后,基于订单标识向处理请求生成方发送订单请求,以使处理请求生成方生成与订单标识对应的处理标识,并基于处理标识向订单处理方发送处理请求,由订单处理方基于处理请求处理订单,使得订单请求生成方在对同一订单重复发出订单请求时,不用重新更换订单标识,使得订单请求生成方不用维护一个订单映射多个订单标识的复杂逻辑,简化订单请求生成方接入订单处理方提供的订单处理功能的成本,降低订单请求生成方的业务操作复杂程度。并通过在处理请求生成方对订单的每次订单请求所对应的处理标识进行管理,消除了订单请求生成方在对订单发出重复的订单请求时对处理逻辑的感知,提高了订单请求生成方的使用体验。
图13是本申请的一示例性实施例示出的订单处理装置的框图。该订单处理装置可以应用于图2所示的实施环境。该订单处理装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图13所示,该示例性的订单处理装置包括:
订单请求生成模块1310,配置为生成针对订单的订单请求,订单请求用于指示对订单进行处理;
订单请求检测模块1320,配置为若检测到订单为订单记录中含有的订单,则确认订单请求是针对订单的非首次订单请求;其中,订单记录是当前时刻之前的时间段内所记录的订单;
订单标识确定模块1330,配置为复用为订单对应的首次订单请求所分配的订单标识,以使订单请求中携带订单标识;
订单请求发送模块1340,配置为向处理请求生成方发送携带有订单标识的订单请求,以使处理请求生成方生成与订单标识对应的处理标识,并向订单处理方发送携带有处理标识向发送处理请求,并由订单处理方基于处理请求处理订单。
在该示例性的订单处理装置中,通过订单请求生成方在检测到订单请求是针对订单的非首次订单请求时,复用为首次订单请求所分配的订单标识,然后,基于订单标识向处理请求生成方发送订单请求,以使处理请求生成方生成与订单标识对应的处理标识,并基于处理标识向订单处理方发送处理请求,由订单处理方基于处理请求处理订单,使得订单请求生成方在对同一订单重复发出订单请求时,不用重新更换订单标识,简化订单请求生成方接入订单处理方提供的订单处理功能的成本,降低订单请求生成方的业务操作复杂程度。
在上述示例性的实施例基础上,订单处理装置还包括订单参数提取模块、对比模块和结果获取模块。具体的:订单参数提取模块,配置为提取订单请求对应的订单的订单参数,得到第一订单参数,并提取订单记录中各个订单的订单参数,得到多个第二订单参数;对比模块,配置为分别对比第一订单参数和多个第二订单参数,得到订单请求对应的订单与订单记录中各个订单之间的匹配度;结果获取模块,配置为基于匹配度检测订单请求对应的订单是否为订单记录中含有的订单。
在该示例性的订单处理装置中,通过对于当前的订单请求的订单参数与订单记录中的各个请求的订单参数的方式,计算订单请求与订单记录中各个请求之间的匹配度,提高判断该订单请求是否是针对订单的非首次订单请求的准确性。
在上述示例性的实施例基础上,订单参数包括多个参数项;分别对比第一订单参数和多个第二订单参数,得到订单请求对应的订单与订单记录中各个订单之间的匹配度,包括:分别从第一订单参数和多个第二订单参数中提取出每个参数项对应的参数值,并获取每个参数项对应的权重参数;计算第一订单参数和每个第二订单参数的相同参数项对应的参数值之间的相似度;用相同参数项对应的权重参数对相似度进行加权计算,得到相同参数项对应的加权值;基于第一订单参数和每个第二订单参数的相同参数项对应的加权值,分别计算得到订单请求对应的订单与订单记录中各个订单之间的匹配度。
在该示例性的订单处理装置中,通过获取订单参数的每个参数项的权重参数,以通过对每个参数项的相似度进行加权计算,得到更加准确的订单请求对应的订单与订单记录中各个订单之间的匹配度。
图14是本申请的另一示例性实施例示出的订单处理装置的框图。该订单处理装置可以应用于图2所示的实施环境。该订单处理装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图14所示,该示例性的订单处理装置包括:
订单请求接收模块1410,配置为接收订单请求生成方发送的针对订单的订单请求;其中,订单为订单记录中含有的订单,订单请求是针对订单的非首次订单请求,订单请求的订单标识复用订单对应的首次订单请求所分配的订单标识;
处理标识生成模块1420,配置为生成与订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;
处理请求发送模块1430,配置为向订单处理方发送携带有处理标识的处理请求,以使订单处理方基于处理请求处理订单。
在上述示例性的实施例基础上,针对订单所发起的订单请求有多个,每个订单请求对应的处理标识设置有用于表征订单的处理状态;处理请求发送模块1430包括处理状态检测单元和请求发送单元。具体的:处理状态检测单元,配置为检测每个处理标识的处理状态中是否存在预设状态;其中,预设状态用于表征订单已处理成功;请求发送单元,配置为若不存在预设状态,则基于所生成的处理标识向订单处理方发送处理请求,以使订单处理方基于处理请求处理订单。
在该示例性的订单处理装置中,通过在处理请求生成方对订单的每次订单请求所对应的处理标识进行管理,消除了订单请求生成方在对订单发出重复的订单请求时对处理逻辑的感知,提高了订单请求生成方的使用体验。
在上述示例性的实施例基础上,订单处理装置还包括处理结果接收单元、订单标识查询单元和结果返回单元。具体的:处理结果接收单元,配置为接收订单处理方基于处理请求返回的处理结果;订单标识查询单元,配置为基于预设订单标识与处理标识之间的映射关系以及处理请求对应的处理标识,得到与处理标识对应的订单标识;结果返回单元,配置为向订单标识对应的订单请求生成方返回处理结果。
在该示例性的订单处理装置中,根据订单标识与处理标识之间的映射关系,查询每个处理结果对应的订单请求生成方,以将处理结果进行返回。
在上述示例性的实施例基础上,每个处理标识对应设置有处理状态;在接收订单处理方基于处理请求返回的处理结果之后,方法还包括:获取订单标识对应的每个处理标识的处理状态;检测处理结果所表征的订单的处理状态与每个处理标识所表征的订单的处理状态是否匹配;若不匹配,则对订单进行异常处理;若匹配,则基于处理结果所表征的订单的处理状态,修改处理请求对应的处理标识所表征的订单的处理状态。
在该示例性的订单处理装置中,每个处理标识对应有处理状态来反映处理标识对应的处理请求的处理情况,以通过检测各个处理标识的处理状态与当前的处理结果之间是否匹配,避免重复成功处理多次订单,以保证订单的幂等性。
在上述示例性的实施例基础上,处理状态包括处理成功、处理失败和处理中;检测处理结果所表征的订单的处理状态与每个处理标识所表征的订单的处理状态是否匹配,包括:若处理结果表征的处理状态为订单已处理成功以及每个处理标识的处理状态含有处理成功,则判断为处理结果表征的处理状态与每个处理标识的处理状态不匹配;若不匹配,则对订单进行异常处理,包括:对订单进行恢复处理,并对含有处理状态为处理中的订单进行业务拦截处理。
在该示例性的订单处理装置中,通过对存在异常的订单进行恢复处理,并对处理状态为处理中的订单进行业务拦截处理,以保证订单处理的正确性。
在上述示例性的实施例基础上,处理标识生成模块1420包括数量查询单元和标识生成单元。具体的:数量查询单元,配置为基于订单标识查询标识列表,得到与订单标识关联的处理标识;其中,标识列表用于存储订单标识与处理标识之间的映射关系;标识生成单元,配置为若与订单标识对应的处理标识的数量小于预设数量,则生成与订单标识对应的处理标识。
在该示例性的订单处理装置中,通过对各个订单的处理标识的数量进行检测,避免对订单进行无意义的大量重试,避免计算资源以及通信网络资源的浪费。
图15是本申请的另一示例性实施例示出的订单处理装置的框图。该订单处理装置可以应用于图2所示的实施环境。该订单处理装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图15所示,该示例性的订单处理装置包括:
请求获取模块1510,配置为获取针对订单的订单请求,订单请求用于指示对订单进行处理;
检测模块1520,配置为若检测到订单为订单记录中含有的订单,则确认订单请求是针对订单的非首次订单请求;其中,订单记录是当前时刻之前的时间段内所记录的订单;
标识复用及生成模块1530,配置为复用为订单对应的首次订单请求所分配的订单标识,并生成与订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;
处理模块1540,配置为向订单处理方发送携带有处理标识的处理请求,以使订单处理方基于处理请求处理订单。
需要说明的是,上述实施例所提供的订单处理装置与上述实施例所提供的订单处理方法属于同一构思,其中各个模块和单元处理操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的订单处理装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的订单处理方法。
图16示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图16示出的电子设备的计算机系统1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从储存部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1603中,还存储有系统操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input/Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的订单处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的订单处理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。

Claims (14)

1.一种订单处理方法,其特征在于,所述方法包括:
生成针对订单的订单请求,所述订单请求用于指示对所述订单进行处理;
若检测到所述订单为订单记录中含有的订单,则确认所述订单请求是针对所述订单的非首次订单请求;其中,所述订单记录是当前时刻之前的时间段内所记录的订单;
复用为所述订单对应的首次订单请求所分配的订单标识,以使所述订单请求中携带所述订单标识;
向处理请求生成方发送携带有所述订单标识的订单请求,以使所述处理请求生成方生成与所述订单标识对应的处理标识,并向订单处理方发送携带有所述处理标识向发送处理请求,并由所述订单处理方基于所述处理请求处理所述订单。
2.根据权利要求1所述的方法,其特征在于,在所述生成针对订单的订单请求之后,所述方法还包括:
提取所述订单请求对应的订单的订单参数,得到第一订单参数,并提取所述订单记录中各个订单的订单参数,得到多个第二订单参数;
分别对比所述第一订单参数和所述多个第二订单参数,得到所述订单请求对应的订单与所述订单记录中各个订单之间的匹配度;
基于所述匹配度检测所述订单请求对应的订单是否为订单记录中含有的订单。
3.根据权利要求2所述的方法,其特征在于,订单参数包括多个参数项;分别对比所述第一订单参数和所述多个第二订单参数,得到所述订单请求对应的订单与所述订单记录中各个订单之间的匹配度,包括:
分别从所述第一订单参数和所述多个第二订单参数中提取出每个参数项对应的参数值,并获取所述每个参数项对应的权重参数;
计算所述第一订单参数和每个第二订单参数的相同参数项对应的参数值之间的相似度;
用所述相同参数项对应的权重参数对所述相似度进行加权计算,得到所述相同参数项对应的加权值;
基于所述第一订单参数和每个第二订单参数的相同参数项对应的加权值,分别计算得到所述订单请求对应的订单与所述订单记录中各个订单之间的匹配度。
4.一种订单处理方法,其特征在于,所述方法包括:
接收订单请求生成方发送的针对订单的订单请求;其中,所述订单为订单记录中含有的订单,所述订单请求是针对所述订单的非首次订单请求,所述订单请求的订单标识复用所述订单对应的首次订单请求所分配的订单标识;
生成与所述订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;
向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单。
5.根据权利要求4所述的方法,其特征在于,针对所述订单所发起的订单请求有多个,每个订单请求对应的处理标识设置有用于表征所述订单的处理状态;所述向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单,包括:
检测每个处理标识的处理状态中是否存在预设状态;其中,所述预设状态用于表征所述订单已处理成功;
若不存在所述预设状态,则基于所生成的处理标识向订单处理方发送处理请求,以使所述订单处理方基于所述处理请求处理所述订单。
6.根据权利要求4所述的方法,其特征在于,在所述向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单之后,所述方法还包括:
接收所述订单处理方基于所述处理请求返回的处理结果;
基于预设订单标识与处理标识之间的映射关系以及所述处理请求对应的处理标识,得到与所述处理标识对应的订单标识;
向所述订单标识对应的订单请求生成方返回所述处理结果。
7.根据权利要求6所述的方法,其特征在于,每个处理标识对应设置有处理状态;在所述接收所述订单处理方基于所述处理请求返回的处理结果之后,所述方法还包括:
获取所述订单标识对应的每个处理标识的处理状态;
检测所述处理结果所表征的所述订单的处理状态与所述每个处理标识所表征的所述订单的处理状态是否匹配;
若不匹配,则对所述订单进行异常处理;
若匹配,则基于所述处理结果所表征的所述订单的处理状态,修改所述处理请求对应的处理标识所表征的所述订单的处理状态。
8.根据权利要求7所述的方法,其特征在于,所述处理状态包括处理成功、处理失败和处理中;所述检测所述处理结果所表征的所述订单的处理状态与所述每个处理标识所表征的所述订单的处理状态是否匹配,包括:
若所述处理结果表征的处理状态为所述订单已处理成功以及所述每个处理标识的处理状态含有处理成功,则判断为所述处理结果表征的处理状态与所述每个处理标识的处理状态不匹配;
所述若不匹配,则对所述订单进行异常处理,包括:
对所述订单进行恢复处理,并对含有处理状态为处理中的订单进行业务拦截处理。
9.根据权利要求5至8中任一项所述的方法,其特征在于,所述生成与所述订单标识对应的处理标识,包括:
基于所述订单标识查询标识列表,得到与所述订单标识关联的处理标识;其中,所述标识列表用于存储所述订单标识与所述处理标识之间的映射关系;
若与所述订单标识对应的处理标识的数量小于预设数量,则生成与所述订单标识对应的处理标识。
10.一种订单处理方法,其特征在于,所述方法包括:
获取针对订单的订单请求,所述订单请求用于指示对所述订单进行处理;
若检测到所述订单为订单记录中含有的订单,则确认所述订单请求是针对所述订单的非首次订单请求;其中,所述订单记录是当前时刻之前的时间段内所记录的订单;
复用为所述订单对应的首次订单请求所分配的订单标识,并生成与所述订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;
向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单。
11.一种订单处理装置,其特征在于,所述装置包括:
订单请求生成模块,配置为生成针对订单的订单请求,所述订单请求用于指示对所述订单进行处理;
订单请求检测模块,配置为若检测到所述订单为订单记录中含有的订单,则确认所述订单请求是针对所述订单的非首次订单请求;其中,所述订单记录是当前时刻之前的时间段内所记录的订单;
订单标识复用模块,配置为复用为所述订单对应的首次订单请求所分配的订单标识,以使所述订单请求中携带所述订单标识;
订单请求发送模块,配置为向处理请求生成方发送携带有所述订单标识的订单请求,以使所述处理请求生成方生成与所述订单标识对应的处理标识,并向订单处理方发送携带有所述处理标识向发送处理请求,并由所述订单处理方基于所述处理请求处理所述订单。
12.一种订单处理装置,其特征在于,所述装置包括:
订单请求接收模块,配置为接收订单请求生成方发送的针对订单的订单请求;其中,所述订单为订单记录中含有的订单,所述订单请求是针对所述订单的非首次订单请求,所述订单请求的订单标识复用所述订单对应的首次订单请求所分配的订单标识;
处理标识生成模块,配置为生成与所述订单标识对应的处理标识;其中,每个订单请求对应一个处理标识;
处理请求发送模块,配置为向订单处理方发送携带有所述处理标识的处理请求,以使所述订单处理方基于所述处理请求处理所述订单。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至10中任一项所述的订单处理方法。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至10中任一项所述的订单处理方法。
CN202211382962.9A 2022-11-04 2022-11-04 订单处理方法、装置、存储介质及电子设备 Pending CN118037374A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211382962.9A CN118037374A (zh) 2022-11-04 2022-11-04 订单处理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211382962.9A CN118037374A (zh) 2022-11-04 2022-11-04 订单处理方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN118037374A true CN118037374A (zh) 2024-05-14

Family

ID=90986575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211382962.9A Pending CN118037374A (zh) 2022-11-04 2022-11-04 订单处理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN118037374A (zh)

Similar Documents

Publication Publication Date Title
JP2022529967A (ja) ブロックチェーン・ネットワークからのデータの抽出
CN113079164B (zh) 堡垒机资源的远程控制方法、装置、存储介质及终端设备
WO2015096514A1 (en) Method, terminal and system for resetting payment password
CN110602056A (zh) 一种业务参数传递方法及装置
CN112613877A (zh) 应用于区块链网络的智能合约触发方法、装置及相关设备
CN111782652B (zh) 数据调用方法、装置、计算机设备和存储介质
CN111639119A (zh) 反洗钱系统中的客户信息查询方法和设备
CN110807209A (zh) 一种数据处理方法、设备及存储介质
CN113821254A (zh) 接口数据处理方法、装置、存储介质及设备
CN118037374A (zh) 订单处理方法、装置、存储介质及电子设备
US20140067602A1 (en) Sanctions Screening
CN114238927A (zh) 业务系统登录方法、系统、装置、计算机设备及存储介质
CN114417061A (zh) 一种企业电子数据的管理方法及系统
CN107704557B (zh) 操作互斥数据的处理方法、装置、计算机设备和存储介质
CN112799744A (zh) 工业app的调用方法、装置、计算机可读介质及电子设备
CN111552907A (zh) 消息处理方法、装置、设备和存储介质
CN111461658A (zh) 基于大数据的企业合同业务处理方法、装置、介质及设备
WO2024066749A1 (zh) 区块链的交易执行方法、装置、程序产品、设备和介质
CN110363537B (zh) 远程面签录屏调取方法、装置、存储介质及计算机设备
CN114285743B (zh) 更新配置信息的方法、装置、电子设备及存储介质
CN110995791B (zh) 交互式医疗信息管理方法及系统
US20240184914A1 (en) Multiple synonymous identifiers in data privacy integration protocols
CN113067951B (zh) 终端通信管理方法、装置、计算机设备及可读存储介质
US20240104558A1 (en) Blockchain transaction execution method and apparatus, program product, device, and medium
CN111563814B (zh) 信息处理方法、装置、系统和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication