具体实施方式
在相关技术中,随着与远程调用的发起方对接的外围系统日渐增多,外围系统中用于指示远程调用失败的错误码也会逐渐增多,此时外围系统在新增错误码后,可能并不能及时的将新增的错误码通知给远程调用的发起方。
在这种情况下,当远程调用的发起方在接收到外围系统返回的新增的错误码时,就可能出现无法解析该错误码,无法向远程调用的发起方返回用于指示本次远程调用失败的原因等信息的错误码提示文本。
例如,在跨境支付的应用场景中,国际收银台在针对外围系统(比如远端的跨境支付系统)执行远程支付调用时,如果接收到外围系统返回的错误码,可以对该错误码进行解析,将其转换成用于指示本次支付调用失败的原因等信息的多语言的错误码提示文本,输出给本次支付调用的发起方。
然而,随着与远程调用的发起方对接的外围系统越来越多,外围系统在新增错误码后,可能并不能及时的将新增的错误码通知给远程调用的发起方。在这种情况下,远程调用的发起方在针对外围系统执行远程调用时,如果接收到外围系统返回的新增的错误码,就会出现错误码解析失败,无法将其转换成对应的错误码提示文本,输出给本次远程调用的发起方,使得本次远程调用的发起方,在发生调用失败后,无法感知到本次调用失败的具体原因。
有鉴于此,本申请提出一种错误解析方法,远程调用的发起端在基于预设的错误码解析规则列表针对远端系统返回的调用失败的错误码进行解析时,通过主动将无法解析的错误码,定时推送至后台服务端,使得用户可以通过定时查看后台服务端,为后台服务端上的各无法解析的错误码添加对应的解析规则,并通过后台服务端将添加的解析规则发送至远程调用的发起端,对错误码解析规则列表进行更新,从而实现了可以对错误码的解析规则实现动态更新,能够及时为远端系统新增的错误码添加相应的解析规则,提升错误码解析的成功率。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种错误码解析方法,应用于远程调用的发起端,所述方法执行以下步骤:
步骤101,在针对远端系统执行远程调用时,基于预设的错误码解析规则列表针对远端系统返回的调用失败的错误码进行解析;
步骤102,如果基于所述错误码解析规则列表无法解析远端系统返回的错误码,则将该无法解析的错误码定时推送至对应的后台服务端,以由用户通过所述后台服务端为无法解析的错误码设置对应的解析规则;
步骤103,接收所述后台服务端推送的与无法解析的错误码对应的解析规则,并将所述解析规则存储至所述错误码解析规则列表,以对所述错误码解析规则列表执行更新。
上述远程调用的发起端,可以是指用于针对远端系统发起远程调用的本地系统;上述远端系统,可以是指与本地系统对接的外围系统。
例如,在跨境支付的应用场景中,上述远程调用的发起端可以是本地的国际收银台系统;上述远端系统,可以是与国际收银台对接的远端的用于响应跨境支付的外围系统;该国际收银台系统可以响应于用户的支付指令,发起针对远端的外围系统的远程支付调用,来完成跨境支付结算。
其中,承载上述远程调用的发起端,以及上述远端系统的硬件环境,在本例中不进行特别限定;例如,可以是服务器、服务器集群或者基于服务器集群构建的云平台。
在本例中,本地系统在响应于用户的远程调用指令,发起针对远端系统的远程调用后,如果本次远程调用失败,该远端系统通常会返回相应的错误码。本地系统可以基于预设的错误码解析规则列表,针对该错误码进行解析,进而将该错误码转换成为用于指示本次远程调用失败原因的错误码提示文本,输出给本次远程调用的发起方用户。
其中,上述错误码解析规则列表,可以包括若干用于针对远端目标返回的错误码进行解析的错误码解析规则。
在示出的一种实施方式中,上述错误码解析规则,可以是由错误码,以及与该错误码对应的错误码提示文本构成的对应关系。在这种情况下,上述错误码解析规则列表中记录的信息,则可以包括若干错误码,以及与这些错误码分别对应的错误码提示文本。
其中,上述错误码提示文本,可以是由系统维护人员手动录入的,或者与本地系统对接的远端系统默认支持的一些用于提示远程调用失败原因的文本;
例如,在跨境支付的应用场景中,上述错误码提示文本,可以是用于提示本次支付调用失败的多语言提示文案;比如,当某一错误码指示本次支付调用失败的原因为“卡号输入错误”,则与该错误码对应的错误码提示文本,可以是多语言的提示文案“支付失败,您的卡号输入错误”。
在本例中,本地系统在针对远端系统返回的错误码进行解析时,可以通过将远端系统返回的错误码与该错误码解析规则列表中的错误码分别执行匹配来实现;
一方面,如果远端系统返回的错误码,与错误码解析规则列表中的任一错误码匹配,此时该错误码解析成功,本地系统可以从错误码解析规则列表中,读取与该错误码对应的错误码提示文本,然后将读取到的该错误码提示文本返回给与本次远程调用所对应的发起方用户;
例如,当上述远程调用为远程支付调用时,在发生支付调用失败后,本地的收银台系统在针对远端系统返回的错误码成功解析后,可以将解析成功的错误码提示文本,返回给发起本次远程支付调用的用户一侧的支付客户端(APP)。
另一方面,如果远端系统返回的错误码与错误码解析规则列表中的错误码均不匹配,此时表明本地系统无法解析该错误码。对于无法解析的该错误码,很可能远端系统未及时通知给本地系统的新增错误码,对于这一类错误码,本地系统通常无法将其转换为相应的错误码提示文本,输出给本次远程调用的发起方用户。
在这种情况下,为了能够实现远端系统新增的错误码的动态更新,本地系统可以启动针对无法解析的错误码的收集机制,并将收集到的无法解析的错误码,定时推送至对应的错误码后台(即后台服务端)。
在示出的一种实施方式中,本地系统可以通过错误码写入系统的日志文件中,来收集无法解析的错误码。本地系统在接收到远端系统返回的错误码后,如果无法解析该错误码,则可以立即将该错误码写入系统的日志文件中。
其中,在一种实现方式中,为了将日志文件中记录的无法解析的错误码,定时推送至错误码后台,本地系统还可以启动一个定时任务,比如该定时任务具体可以是一个用于触发定时推送任务的线程,本地系统可以基于该定时任务,定时将日志文件中记录的无法解析的错误码主动推送错误码后台。
当然,除了本地系统可以主动将日志文件中记录的无法解析的错误码推送至错误码后台以外,在实际应用中,日志文件中记录的无法解析的错误码,也可以由错误码后台来主动“捞取”。
在另一种实现方式中,错误码后台也可以启动一个定时任务,比如该定时任务具体可以是一个定时触发向本地系统发送错误码推送请求的线程。错误码后台可以基于该定时任务,定时向本地系统发送错误码推送请求,从上述日志文件中捞取无法解析的错误码。本地系统在接收到错误码后台定时推送的错误码推送请求后,可以响应该错误码推送请求,将上述日志文件中记录的无法解析的错误码定时推送至错误码后台。
在本例中,当错误码后台接收到本地系统定时推送的无法解析的错误码后,可以在系统中对接收到的无法解析的错误码在系统中进行录入;比如,可以将接收到的无法解析的错误码写入指定的数据表,或者系统文件,然后通过预设的交互界面向错误码维护人员输出。
错误码维护人员则可以通过定时查看错误码后台中新录入的无法解析的错误码,对各无法解析的错误码进行手动解析,通过错误码后台为各无法解析的错误码设置对应的错误码提示文本,并将设置的错误码提示文本手动录入错误码后台。
对于错误码后台而言,当错误码维护人员通过对各无法解析的错误码进行手动解析,并人工录入了对应的错误码提示文本后,错误码后台可以存储各错误码,与错误码维护人员为各错误码人工录入的错误码提示文本之间的对应关系,然后将该对应关系作为人工录入的新的错误码解析规则,推送至本地系统。
其中,错误码后台在向本地系统推送人工录入的新的错误码解析规则时,可以是主动推送,也可以是由本地系统通过发送推送请求,定时的进行“捞取”,在本例中不进行特别限定。
当本地系统在接收到错误码后台推送至本地的新的错误码解析规则后,可以将该新的错误码解析规则,存储至上述错误解析规则列表中,以对该错误码解析规则列表执行更新。
当更新完成后,当本地系统再次针对远端系统执行远程调用时,如果远端系统返回了相同的错误码后,则本地系统基于更新后的错误码解析规则列表,可以成功解析该错误码,基于该错误码解析规则列表中记录的信息,将该错误码转换成相应的错误码提示文本,返回给本次远程调用的发起方用户。
可见,通过这种方式,当远端系统新增了错误码时出,错误码维护人员可以通过错误码后台及时为新增的错误码添加相应的解析规则,并动态的更新至错误码解析规则列表,从而使得本地系统再次接收到远端系统返回的新增错误码时,能够成功解析该错误码,将其转换为对应的错误码提示文本输出给远程调用的发起方用户。
在示出的另一种实施方式中,为了使本地系统在基于上述错误码解析规则列表针对该错误码进行解析时,能够直观的感知到该错误码是由哪个远端系统返回的,上述错误码解析规则列表中记录的信息,除了可以包括若干错误码,以及与这些错误码分别对应的错误码提示文本以外,还可以包括与各错误码对应的远端系统的标识(比如系统ID)。
在这种情况下,本地系统在基于上述错误码解析规则列表,对远端系统返回的错误码进行解析时,如果该错误码与该错误码解析规则列表中的任一错误码匹配,本地系统除了可以基于列表中记录的与该错误码对应的错误码提示文本,将该错误码成功转换成相应的错误码提示文本以外,还可以基于该错误码解析规则列表中记录的与该错误码对应的远端系统的标识,来直观的获取到返回该错误码的远端系统的标识。
当然,本地系统在基于上述错误码解析规则列表,对远端系统返回的错误码进行解析时,如果该错误码与该错误码解析规则列表中的错误码均不匹配,本地系统仍然可以按照相同的方式,将该无法解析的错误码推送至错误码后台。
在这种情况下,错误码维护人员在通过定时查看错误码后台中录入的无法解析的错误码,对各无法解析的错误码进行手动解析后,除了可以为各无法解析的错误码人工录入对应的错误码提示文本,生成新的错误码解析规则以外,还可以将手动解析出的返回该错误码的远端系统的标识信息,也一并进行录入,并由错误码后台推送至本地系统。
错误码后台在将错误码维护人员录入的新的错误码解析规则,以及与各错误码对应的远端系统的标识,推送至本地系统后,本地系统可以将该新的错误码解析规则,以及与各错误码对应的远端系统的标识,存储至上述错误码解析规则列表中,以完成错误码解析规则列表的更新。此时更新后的错误码解析规则列表中,不仅记录了与各无法解析的错误码对应的错误码提示文本,还记录了返回该错误码的远端系统的标识。
可见,通过这种方式,当本地系统再次接收到远端系统返回的新增错误码时,不仅可以基于更新后的错误码解析规则列表,对该新增的错误码正确的进行解析,还可以在成功解析该新增的错误码后,可以进一步基于与该错误码对应的远端系统的标识,直观的了解到返回该错误码的远端系统,从而本地系统可以通过与该远端系统进行后续的交互,来有针对性的进行故障排查等相关操作。
以下结合跨境支付的应用场景,对本申请的技术方案进行描述。
当然,需要说明的是,上述示出的应用场景仅为示例性的,并不用于限定;显然,在实际应用中本申请的技术方案,也可以应用在其它类似的远程调用场景。
在跨境支付的应用场景中,上述远程调用的发起端可以是本地的国际收银台系统;上述远端系统,则可以是与国际收银台对接的远端的用于响应跨境支付的外围系统。
在本例中,用户可以通过支付客户端(比如支付宝APP),向国际收银台系统发送跨境结算的支付指令。国际收银台系统在接收到该支付指令后,可以响应该支付指令,发起针对远端的外围系统的远程支付调用,来完成跨境支付结算。
请参见图2,如果国际收银台系统针对外围系统的远程支付调用失败,该外围系统返回了错误码后,国际收银台系统可以基于预设的错误解析规则列表,对该错误码进行解析,将该错误码转换为多语言的错误码提示文本,向发起本次远程支付调用的用户输出。
请继续参见图2,如果国际收银台系统基于该错误码解析规则列表,仍然无法解析该错误码,表明该错误码可能是该外围系统未能及时通知给国际收银台系统的新增错误码,国际收银台系统可以将该无法解析的错误码,记录到日志文件中,并将日志文件中记录的无法解析的错误码,定时推送至错误码后台。
请继续参见图2,错误码后台在接收到国际收银台系统推送至本地的无法解析的错误码后,可以将这些无法解析的错误码,录入到系统中。错误码维护人员可以通过定时查看错误码后台录入的无法解析的错误码,对各无法解析的错误码进行手动解析,为各无法解析的错误码人工录入对应的多语言的错误码提示文本,然后由错误码后台推送至国际收银台系统。
国际收银台系统在接收到错误码后台推送的为各无法解析的错误码新录入的错误码提示文本后,可以基于这些信息对错误码解析规则列表中的信息执行更新。后续当用户通过支付客户端,再次发起针对该外围系统的远程支付调用后,如果该外围系统再次返回该错误码,则国际收银台系统,可以基于更新后的该错误码解析规则,正确的解析该错误码,将其转换为多语言的错误码提示文本,向发起本次远程支付调用的用户输出。
例如,假设该错误码指示本次支付调用失败的原因为“卡号输入错误”,则与该错误码对应的错误码提示文本,国际收银台系统可以通过用户的支付客户端,向用户返回一条多语言的提示文案“支付失败,您的卡号输入错误”。
用户通过查看该错误码提示文本,可以了解到本次支付失败的具体原因,从而可以重新发起针对该外围系统的远程支付调用。
通过以上实施例可知,远程调用的发起端在基于预设的错误码解析规则列表针对远端系统返回的调用失败的错误码进行解析时,通过主动将无法解析的错误码,定时推送至后台服务端,使得用户可以通过定时查看后台服务端,为后台服务端上的各无法解析的错误码添加对应的解析规则,并通过后台服务端将添加的解析规则发送至远程调用的发起端,对错误码解析规则列表进行更新,从而实现了可以对错误码的解析规则实现动态更新,能够及时为远端系统新增的错误码添加相应的解析规则,提升错误码解析的成功率。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图3,本申请提出一种错误码解析装置30,应用于远程调用的发起端;其中,请参见图4,作为承载所述错误码解析装置30的远程调用的发起端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述错误码解析装置30通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置30包括:
解析模块301,在针对远端系统执行远程调用时,基于预设的错误码解析规则列表针对远端系统返回的调用失败的错误码进行解析;
推送模块302,如果基于所述错误码解析规则列表无法解析远端系统返回的错误码,则将该无法解析的错误码定时推送至对应的后台服务端,以由用户通过所述后台服务端为无法解析的错误码设置对应的解析规则;
接收模块303,接收所述后台服务端推送的与无法解析的错误码对应的解析规则,并将所述解析规则存储至所述错误码解析规则列表,以对所述错误码解析规则列表执行更新。
在本例中,所述错误码解析规则列表中记录的信息包括:
错误码,以及与错误码对应的错误码提示文本;
所述解析模块301:
将远端系统返回的调用失败的错误码与所述错误码解析规则列表中的错误码执行匹配;如果远端系统返回的错误码与所述错误码解析规则列表中的错误码均不匹配,则确定基于所述错误码解析规则列表无法解析远端系统返回的该错误码。
在本例中,解析模块301进一步:
如果远端系统返回的错误码与所述错误码解析规则列表中的任一错误码匹配,则读取与该错误码对应的错误码提示文本,将该错误码提示文本返回给与所述远程调用对应的发起方用户。
在本例中,所述推送模块302:
如果基于所述错误码解析规则列表无法解析远端系统返回的错误码,则将该无法解析的错误码写入日志文件;
启动定时推送任务,将所述日志文件中记录的无法解析的错误码定时主动推送至所述后台服务端;
或者,响应于所述后台服务端定时发送的错误码推送请求,将所述日志文件中记录的无法解析的错误码定时推送至所述后台服务端。
在本例中,所述错误码解析规则列表中记录的信息还包括:
与错误码对应的远端系统的标识;
所述接收模块303进一步:
接收所述后台服务端推送的与所述无法解析的错误码对应的远端系统的标识,并将该远端系统的标识存储至所述错误码解析规则列表;
其中,与所述无法解析的错误码对应的远端系统的标识,由用户通过所述后台服务端设置。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。