CN110912856A - 非侵入式mock支付方法及系统、支付服务端、mock服务端 - Google Patents
非侵入式mock支付方法及系统、支付服务端、mock服务端 Download PDFInfo
- Publication number
- CN110912856A CN110912856A CN201811079913.1A CN201811079913A CN110912856A CN 110912856 A CN110912856 A CN 110912856A CN 201811079913 A CN201811079913 A CN 201811079913A CN 110912856 A CN110912856 A CN 110912856A
- Authority
- CN
- China
- Prior art keywords
- payment
- mock
- user
- test
- server
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明适用于金融技术领域,提供了一种非侵入式mock支付方法及系统、支付服务端、mock服务端,所述非侵入式mock支付方法包括:对待支付用户进行权限验证;将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;获取所述mock服务端发送的确认所述测试订单已支付的通知。本发明中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
Description
技术领域
本发明属于金融技术领域,尤其涉及一种非侵入式mock支付方法及系统、支付服务端、mock服务端。
背景技术
在线下单,支付,支付完成是互联网电商平台核心功能和流程,电商平台产品功能发生变更时,需要对产品变更点重点测试,并且对产品所有功能进行回归测试。在敏捷开发项目管理中频繁产品需求变更,需要软件开发,测试,发布同步频繁迭代。但支付环节往往依赖多个第三方支付服务,比如支付宝,微信,网上银行等等,第三方服务的回归测试相比一方服务,二方服务流程繁琐,效率低下和环境不稳定,频繁的测试频率导致支付测试不适合采用真实的支付方式进行回归,因此在测试环境往往采用跳过真实支付操作环节或者mock支付操作环节进行回归测试,但在生产环境中基于安全性考虑不能提供和开通跳过支付或者mock支付的服务和接口。
业内已有mock技术方案一般是在服务发起方用mock服务替代服务接收方,使发起方的服务请求无法真正发送到服务方,由中间mock服务模拟请求返回发送给服务发起方。这就使得在进行回归测试时,无法覆盖服务接收方的服务。
现有技术方案没有区分用户类型,会导致无法识别普通账户和测试账户,导致普通用户不用真实支付即可购买产品。而若现有技术方案中有区分用户类型,则会导致对原有系统侵入,添加与主业务无关代码,并增加额外服务调用链,一旦mock服务出现故障直接影响生产环境正常流程运转。因此,一般mock方案均适合于测试环境,mock服务提供的方法是没有权限,加密和签名等安全策略,直接用于正式生产环境中会带来安全隐患。
发明内容
本发明实施例提供了一种非侵入式mock支付方法及系统、支付服务端、mock服务端,旨在解决现有技术的由于不区分普通账户和测试账户导致安全可靠性低的问题。
一种非侵入式mock支付方法,包括:
对待支付用户进行权限验证;
将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
获取所述mock服务端发送的确认所述测试订单已支付的通知。
优选地,所述对待支付用户进行权限验证之前,包括:
设置一切面类以进入mock支付操作。
优选地,所述设置一切面类以进入mock支付操作,包括:
选择支付流程中的发起支付行为作为切入点;
将支付完成作为连接点;
在支付完成连接点上增加后置通知方法。
优选地,所述对待支付用户进行权限验证,具体为:
在所述后置通知方法中对所述待支付用户进行权限校验。
优选地,所述在所述后置通知方法中对所述待支付用户进行权限校验,具体为:
获取所述待支付用户信息;
判断是否是测试用户;
如果所述待支付用户是测试用户,则判断是否有允许进行mock支付的权限;
如果所述待支付用户是测试用户,且有允许进行mock支付的权限,则验证通过。
优选地,所述接收所述mock服务端发送的确认所述测试订单已支付的通知,具体为:
通过确认支付接口获取所述mock服务端发送的确认所述测试订单已支付的通知。
本发明还提供一种支付服务端,包括:
第一权限验证单元,用于对待支付用户进行权限验证;
第一发送单元,与所述第一权限验证单元连接,用于将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
第一通知单元,与所述第一发送单元连接,用于获取所述mock服务端发送的确认所述测试订单已支付的通知。
本发明还提供一种第一存储器,所述第一存储器存储有计算机程序,所述计算机程序被第一处理器执行如下步骤:
对待支付用户进行权限验证;
将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
获取所述mock服务端发送的确认所述测试订单已支付的通知。
本发明还提供一种支付服务端,包括第一存储器、第一处理器及存储在所述第一存储器中并可在所述第一处理器上运行的计算机程序,所述第一处理器执行所述计算机程序时实现以下步骤:
对待支付用户进行权限验证;
将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
获取所述mock服务端发送的确认所述测试订单已支付的通知。
本发明还提供一种非侵入式mock支付方法,包括:
接收支付服务端发送的测试订单和测试用户信息;
对所述测试用户信息和所述测试订单进行权限验证;
根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
通过所述mock报文通知所述支付服务端所述测试订单已支付。
优选地,所述接收支付服务端发送的测试订单和测试用户信息,具体为:
接收通过后置通知方法发送的消息队列;或者
接收通过后置通知方法异步调用接口而发送的消息。
优选地,所述通过所述mock报文通知所述支付服务端所述测试订单已支付,具体为:
回调所述支付服务端中的确认支付接口,通过所述mock报文通知所述支付服务端所述测试订单已支付。
本发明还提供一种mock服务端,包括:
接收单元,用于接收支付服务端发送的测试订单和测试用户信息;
第二权限验证单元,与所述接收单元连接,用于对所述测试用户信息和所述测试订单进行权限验证。
报文构造单元,与所述第二权限验证单元连接,用于根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
第二通知单元,与所述报文构造单元连接,用于通过所述mock报文通知所述支付服务端所述测试订单已支付。
本发明还提供一种第二存储器,所述第二存储器存储有计算机程序,所述计算机程序被处理器执行如下步骤:
接收支付服务端发送的测试订单和测试用户信息;
对所述测试用户信息和所述测试订单进行权限验证。
根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
通过所述mock报文通知所述支付服务端所述测试订单已支付。
本发明还提供一种mock服务端,第二存储器、第二处理器及存储在所述第二存储器中并可在所述第二处理器上运行的计算机程序,所述第二处理器执行所述计算机程序时实现以下步骤:
接收支付服务端发送的测试订单和测试用户信息;
对所述测试用户信息和所述测试订单进行权限验证。
根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
通过所述mock报文通知所述支付服务端所述测试订单已支付。
本发明实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
附图说明
图1为本发明第一实施例提供的一种非侵入式mock支付方法的流程图;
图2为本发明第一实施例提供的一种非侵入式mock支付方法的一优选方式的流程图;
图3为图2中步骤S3的流程示意图;
图4为图1中步骤S1的流程示意图;
图5为本发明第二实施例提供的一种支付服务端的结构图;
图6为本发明第三实施例提供的一种支付服务端的结构图;
图7为本发明第五实施例提供的一种非侵入式mock支付方法的流程图;
图8为本发明第五实施例提供的一种非侵入式mock支付方法的一优选方式的流程图;
图9为本发明第六实施例提供的一种mock服务端的结构图;
图10为本发明第七实施例提供的一种mock服务端的结构图;
图11为本发明第九实施例提供的一种非侵入式mock支付系统的结构图;
图12为本发明第九实施例的非侵入式mock支付系统的mock支付示意图;
图13为本发明第九实施例的非侵入式mock支付系统的回归测试示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,一种非侵入式mock支付方法,包括:对待支付用户进行权限验证;将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;获取所述mock服务端发送的确认所述测试订单已支付的通知。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种非侵入式mock支付方法的流程图,该方法包括:
步骤S10,对待支付用户进行权限验证;
在步骤S1之前,用户通过个人计算机(personal computer,PC)、网页或应用程序(Application,APP)上选择商品下单,并对选定订单进行支付发起。
在步骤S10中,首先获取所述待支付用户信息;再判断是否是测试用户;如果所述待支付用户是测试用户,则判断是否有允许进行mock支付的权限;如果所述待支付用户是测试用户,且有允许进行mock支付的权限,则验证通过。否则验证不通过。
步骤S11,将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
具体地,将测试订单和测试用户信息通知mock服务端进行mock支付操作。可以采用两种方式:通过消息队列由后置通知方法作为发送方,mock服务端作为消费方;mock服务端提供调用接口,后置通知方法异步调用发送消息。
步骤S12,获取所述mock服务端发送的确认所述测试订单已支付的通知;
具体地,通过确认支付接口获取所述mock服务端发送的确认所述测试订单已支付的通知。
之后,继续执行原先流程。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
在本实施例的一个优选方案中(见图2),该步骤S10之前还包括:
步骤S13,设置一切面类以进入mock支付操作。
具体地,在现有支付服务端中新建一个切面类,可以基于面向切面编程(AspectOriented Programming,AOP)框架,不会对现有支付流程代码做出侵入。例如,java编程语言下可使用Spring框架:
@Aspect
public class PayMockAspect{
}
具体地,如图3所示,包括:
步骤S130:选择支付流程中的发起支付行为作为切入点(Pointcut);
例如,@Pointcut(″execution(*com..*.pay(..)))″)
步骤S131:将支付完成作为连接点;
例如,public voidpayMethod(){
}
步骤S132:在支付完成连接点上增加后置通知方法。
例如,@After(″payMethod()″)
public Object Interceptor(ProceedingJoinPoint joinPoint){
}
待支付用户在对订单发起支付逻辑处理完成之后,织入后置通知方法。
所述步骤S10具体为:在所述后置通知方法中对所述待支付用户进行权限校验。更具体地,如图4所示,包括:
步骤S100:读取待支付用户信息。
步骤S101:判断是否是测试用户;如果是,则执行步骤S11,否则跳转至步骤S14。
步骤S102:是否启用mock支付;如果是,则执行步骤S13,否则跳转至步骤S14。
即判断该测试用户是否有mock支付的权限。
步骤S103:允许mock支付,验证通过。
只有是测试用户且有mock支付的权限的待支付用户才才通过验证。
步骤S104:不允许mock支付;
不是测试用户,或者没有mock支付的权限的待支付用户不能通过验证,不能进行mock支付。
步骤S105:返回结果。
将待支付用户的验证结果返回。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
实施例二:
如图5所示,为本发明第二实施例提供的一种支付服务端的结构图,该支付服务端包括:第一权限验证单元110、与第一接收单元110连接的第一发送单元111、与第一发送单元111连接的第一通知单元112,其中:
第一权限验证单元110,用于对待支付用户进行权限验证;
在第一权限验证单元110对待支付用户进行权限验证之前,用户通过PC、网页或APP上选择商品下单,并对选定订单进行支付发起。
第一权限验证单元110对待支付用户进行权限验证时,首先第一权限验证单元110获取所述待支付用户信息;再判断是否是测试用户;如果所述待支付用户是测试用户,则第一权限验证单元110判断是否有允许进行mock支付的权限;如果所述待支付用户是测试用户,且有允许进行mock支付的权限,则验证通过。否则验证不通过。
第一发送单元111,用于将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
具体地,第一发送单元111将测试订单和测试用户信息通知mock服务端进行mock支付操作。可以采用两种方式:第一发送单元111通过消息队列由后置通知方法作为发送方,mock服务端作为消费方;mock服务端提供调用接口,后置通知方法异步调用发送消息。
第一通知单元112,用于获取所述mock服务端发送的确认所述测试订单已支付的通知。
具体地,第一通知单元112通过确认支付接口获取所述mock服务端发送的确认所述测试订单已支付的通知。
之处,支付服务端继续执行原先流程。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
在本实施例的一个优选方案中,该装置还包括:与第一权限验证单元110连接的切面设置单元113,其中:
切面设置单元113,用于设置一切面类以进入mock支付操作;
具体地,切面设置单元113在现有支付服务端中新建一个切面类,可以基于AOP框架,不会对现有支付流程代码做出侵入。例如,java编程语言下可使用Spring框架:
@Aspect
public class PayMockAspect{
}
更具体地,切面设置单元113选择支付流程中的发起支付行为作为切入点;将支付完成作为连接点。
例如,@Pointcut(″execution(*com..*.pay(..)))″)
public voidpayMethod(){
}
切面设置单元113再在支付完成连接点上增加后置通知方法。
例如,@After(″payMethod()″)
public Object Interceptor(ProceedingJoinPoint joinPoint){
}
待支付用户在对订单发起支付逻辑处理完成之后,切面设置单元113织入后置通知方法。
在本实施例的一个优选方案中,第一权限验证单元110在所述后置通知方法中对所述待支付用户进行权限校验。具体地,第一权限验证单元110获取所述待支付用户信息;判断是否是测试用户;如果所述待支付用户是测试用户,则判断是否有允许进行mock支付的权限;如果所述待支付用户是测试用户,且有允许进行mock支付的权限,则验证通过。第一权限验证单元110判断到不是测试用户,或者没有mock支付的权限的待支付用户不能通过验证,不能进行mock支付。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
实施例三:
图5示出了本发明第三实施例提供的一种支付服务端的结构图,该支付服务端包括:第一存储器(memory)120、第一处理器(processor)121、第一通信接口(CommunicationsInterface)122和第一总线123,该第一处理器121、第一存储器120、第一通信接口122通过第一总线123完成相互之间的交互通信。
第一存储器120,用于存储各种数据信息;
具体地,第一存储器120用于存储各种数据信息,例如mock支付过程中的数据信息、接收的数据信息等,此处对此不作限制,该第一存储器120还包括有多个计算机程序。
第一通信接口122,用于该支付服务端的通信设备之间的信息传输;
第一处理器121,用于调用第一存储器120中的各种计算机程序,以执行上述实施例一所提供的一种非侵入式mock支付方法,例如:
对待支付用户进行权限验证;
将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
获取所述mock服务端发送的确认所述测试订单已支付的通知。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
实施例四:
本发明还提供一种第一存储器,该第一存储器存储有多个计算机程序,该多个计算机程序被第一处理器调用执行上述实施例一所述的一种非侵入式mock支付方法。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
实施例五:
图7示出了本发明第五实施例提供的一种非侵入式mock支付方法的流程图,该方法包括:
步骤S20:接收支付服务端发送的测试订单和测试用户信息;
具体地,可以采用两种方式:接收通过后置通知方法发送的消息队列;即通过消息队列由后置通知方法作为发送方,mock服务端作为消费方;或者提供接口,接收通过后置通知方法异步调用该接口而发送的消息。
步骤S21:对所述测试用户信息和所述测试订单进行权限验证;
具体地,对测试用户权限和测试订单信息做二次验证。在测试用户和测试订单都合法的情况下再进行后续步骤。
步骤S22:根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
具体地,获取测试订单的相关基本信息,根据合法的测试订单的信息构造一个带内部签名的支付成功mock报文。非法的不作处理。
步骤S23:通过所述mock报文通知所述支付服务端所述测试订单已支付。
具体地,回调所述支付服务端中的确认支付接口,通过所述mock报文通知所述支付服务端所述测试订单已支付。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
在本实施例的一个优选方案中,如图8所示,非侵入式mock支付方法包括:
步骤S30:接收mock支付请求。
具体地,mock支付请求中包括测试用户信息和测试订单信息。
步骤S31:判断测试用户是否合法;如果是,则执行步骤S32;如果否,则跳转至步骤S36。
即判断待支付用户是否是测试用户。
步骤S32:获取测试订单。
具体地,获取mock支付请求中的测试订单信息。
步骤S33:判断订单状态是否合法;如果是,则执行步骤S34;否则跳转至步骤S36。
即判断测试用户是否有mock支付权限。
步骤S34:构造签名报文。
具体地,根据合法的测试订单的信息构造一个带内部签名的支付成功mock报文。非法的不作处理。
步骤S35:回调支付确认。
具体地,回调所述支付服务端中的确认支付接口,通过所述mock报文通知所述支付服务端所述测试订单已支付。
步骤S36:结束。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
另外,mock服务端回调确认支付时使用内部签名,提高安全性以便应用于生产环境。
实施例六:
如图9所示,为本发明第六实施例提供的一种mock服务端的结构图,该mock服务端包括:接收单元210、与接收单元210连接的第二权限验证单元211、与第二权限验证单元21连接的报文构造单元212、与报文构造单元212连接的第二通知单元213,其中:
接收单元210,用于接收支付服务端发送的测试订单和测试用户信息;
具体地,可以采用两种方式:接收单元210接收通过后置通知方法发送的消息队列;即通过消息队列由后置通知方法作为发送方,mock服务端作为消费方;或者mock服务端提供接口,接收单元210接收通过后置通知方法异步调用该接口而发送的消息。
第二权限验证单元211,用于对所述测试用户信息和所述测试订单进行权限验证。
具体地,第二权限验证单元211对测试用户权限和测试订单信息做二次验证。在测试用户和测试订单都合法的情况下再进行后续步骤。
报文构造单元212,用于根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
具体地,报文构造单元212获取测试订单的相关基本信息,根据合法的测试订单的信息构造一个带内部签名的支付成功mock报文。非法的不作处理。
第二通知单元213,用于通过所述mock报文通知所述支付服务端所述测试订单已支付。
具体地,第二通知单元213回调所述支付服务端中的确认支付接口,通过所述mock报文通知所述支付服务端所述测试订单已支付。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
另外,mock服务端回调确认支付时使用内部签名,提高安全性以便应用于生产环境。
实施例七:
图10示出了本发明第七实施例提供的一种mock服务端的结构图,该mock服务端包括:第二存储器(memory)220、第二处理器(processor)221、第二通信接口(CommunicationsInterface)222和第二总线223,该第二处理器221、第二存储器220、第二通信接口222通过第二总线223完成相互之间的交互通信。
第二存储器220,用于存储各种数据信息;
具体地,第二存储器220用于存储各种数据信息,例如mock支付过程中的数据信息、接收的数据信息等,此处对此不作限制,该第二存储器220还包括有多个计算机程序。
第二通信接口222,用于该支付服务端的通信设备之间的信息传输;
第二处理器221,用于调用第二存储器220中的各种计算机程序,以执行上述实施例五所提供的一种非侵入式mock支付方法,例如:
接收支付服务端发送的测试订单和测试用户信息;
对所述测试用户信息和所述测试订单进行权限验证;
根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
通过所述mock报文通知所述支付服务端所述测试订单已支付。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
另外,mock服务端回调确认支付时使用内部签名,提高安全性以便应用于生产环境。
实施例八:
本发明还提供一种第二存储器,该第二存储器存储有多个计算机程序,该多个计算机程序被第二处理器调用执行上述实施例五所述的一种非侵入式mock支付方法。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
另外,mock服务端回调确认支付时使用内部签名,提高安全性以便应用于生产环境。
实施例九:
基于上述实施例二和实施例六,如图11所示,为本发明第九实施例提供的一种非侵入式mock支付系统的结构图,该非侵入式mock支付系统包括:支付服务端31、与支付服务端31连接的mock服务器41,该支付服务端31的具体结构及工作原理与上述实施例二的描述基本一致,该mock服务器41的具体结构及工作原理与上述实施例六的描述基本一致,此处不再赘述。
支付服务端31对待支付用户进行权限验证,将有权限的测试用户的测试订单发送至mock服务器41;mock服务器41对所述测试用户和测试订单进行权限验证;mock服务器41将经过验证的测试订单构造内部约定签名,并通知支付服务端31测试订单已支付。
更具体地,非侵入式mock支付系统如图12所示,非侵入式mock支付系统选择支付流程中的发起支付行为作为切入点,将支付完成作为连接点,并在支付完成连接点上增加后置通知方法。即非侵入式mock支付系统将支付服务端31中的支付发起点作为切入点,将支付服务端31中的支付大企业点作为连接点,并设置一切面类以进入mock支付操作。具体的mock支付流程如下:
步骤1:待支付用户对订单发起支付。
该订单可以是普通订单,也可以是测试订单。
步骤2:处理业务流程。
即完成普通订单的支付流程。
步骤3:织入后置通知。
步骤4:用户验权。然后执行步骤5或者步骤7。
具体地,获取所述待支付用户信息;判断是否是测试用户;如果所述待支付用户是测试用户,则判断是否有允许进行mock支付的权限;
如果所述待支付用户是测试用户,且有允许进行mock支付的权限,则验证通过。否则验证不通过,不能进行mock支付。
步骤5:将测试订单信息添加至消息队列。
步骤6:发送消息队列至mock服务端。然后执行步骤8。
步骤5-步骤6是通过消息队列由后置通知方法作为发送方,mock服务端作为消费方来将测试订单发送至mock服务端。
步骤7:发送测试订单至mock服务端。然后执行步骤8。
具体地,mock服务端提供调用接口,支付服务端应用后置通知方法异步调用发送消息至mock服务端。
步骤8:进行mock支付。
mock服务端对用户权限和订单信息做二次验证,获取测试订单的相关基本信息,将合法的测试订单的信息构造一个带内部签名的支付成功mock报文。非法的支付请求不做处理。
步骤9:确认支付。
Mock服务端回调支付服务端中的确认支付接口,通知支付服务端测试订单支付完成。
步骤10:处理业务流程。
支付服务端继续原来的普通支付业务流程。
在本发明的非侵入式mock支付系统中,测试用户在生产环境进行回归测试时,可通过配置选择是否需要对支付环节进行测试,如果需要跳过测试环节,测试用户在发起支付之后,随即就会收到模拟第三方支付平台发出的支付完成的通知,并且保证原电商平台,现有支付流程均正常完整执行。具体如图13所示,用户进行支付服务时,选择是否需要对支付环节进行测试。如果不需要对支付环节进行测试,则跳过测试环节,测试用户在发起支付之后,直接通过模拟第三方支付平台发出的支付完成的通知,而实际第三方支付服务正常进行普通支付。如果需要对支付环节进行测试,则进行用户验权并进行mock支付服务。支付服务和mock支付服务之间通过消息队列中间件传递信息。
本实施例中,进行非侵入式设计,对待支付用户进行权限验证,区分普通用户和测试用户,提供安全可靠的mock支付服务。
其次,采用非侵入式设计,通过动态代理绑定支付完成模块,不会依赖、影响或变更正常支付流程中涉及的服务和方法代码。
再者,用户权限管理,区分普通用户和测试用户,便于记录追溯操作记录,隔离普通用户和测试用户支付流程,保证普通用户不受影响。
另外,mock服务端回调确认支付时使用内部签名,提高安全性以便应用于生产环境。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种非侵入式mock支付方法,其特征在于,包括:
对待支付用户进行权限验证;
将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
获取所述mock服务端发送的确认所述测试订单已支付的通知。
2.根据权利要求1所述的mock支付方法,其特征在于,所述对待支付用户进行权限验证之前,包括:
设置一切面类以进入mock支付操作。
3.根据权利要求2所述的mock支付方法,其特征在于,所述设置一切面类以进入mock支付操作,包括:
选择支付流程中的发起支付行为作为切入点;
将支付完成作为连接点;
在支付完成连接点上增加后置通知方法。
4.根据权利要求3所述的mock支付方法,其特征在于,所述对待支付用户进行权限验证,具体为:
在所述后置通知方法中对所述待支付用户进行权限校验。
5.根据权利要求4所述的mock支付方法,其特征在于,所述在所述后置通知方法中对所述待支付用户进行权限校验,具体为:
获取所述待支付用户信息;
判断是否是测试用户;
如果所述待支付用户是测试用户,则判断是否有允许进行mock支付的权限;
如果所述待支付用户是测试用户,且有允许进行mock支付的权限,则验证通过。
6.根据权利要求1所述的mock支付方法,其特征在于,所述接收所述mock服务端发送的确认所述测试订单已支付的通知,具体为:
通过确认支付接口获取所述mock服务端发送的确认所述测试订单已支付的通知。
7.一种支付服务端,其特征在于,包括:
第一权限验证单元,用于对待支付用户进行权限验证;
第一发送单元,与所述第一权限验证单元连接,用于将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
第一通知单元,与所述第一发送单元连接,用于获取所述mock服务端发送的确认所述测试订单已支付的通知。
8.一种第一存储器,所述第一存储器存储有计算机程序,其特征在于,所述计算机程序被第一处理器执行如下步骤:
对待支付用户进行权限验证;
将有权限的测试用户的测试订单发送至mock服务端以进行mock支付操作;
获取所述mock服务端发送的确认所述测试订单已支付的通知。
9.一种支付服务端,包括第一存储器、第一处理器及存储在所述第一存储器中并可在所述第一处理器上运行的计算机程序,其特征在于,所述第一处理器执行所述计算机程序时实现如权利要求1至6任意一项所述的非侵入式mock支付方法的步骤。
10.一种非侵入式mock支付方法,其特征在于,包括:
接收支付服务端发送的测试订单和测试用户信息;
对所述测试用户信息和所述测试订单进行权限验证。
根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
通过所述mock报文通知所述支付服务端所述测试订单已支付。
11.根据权利要求10所述的mock支付方法,其特征在于,所述接收支付服务端发送的测试订单和测试用户信息,具体为:
接收通过后置通知方法发送的消息队列;或者
接收通过后置通知方法异步调用接口而发送的消息。
12.根据权利要求10所述的mock支付方法,其特征在于,所述通过所述mock报文通知所述支付服务端所述测试订单已支付,具体为:
回调所述支付服务端中的确认支付接口,通过所述mock报文通知所述支付服务端所述测试订单已支付。
13.一种mock服务端,其特征在于,包括:
接收单元,用于接收支付服务端发送的测试订单和测试用户信息;
第二权限验证单元,与所述接收单元连接,用于对所述测试用户信息和所述测试订单进行权限验证。
报文构造单元,与所述第二权限验证单元连接,用于根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
第二通知单元,与所述报文构造单元连接,用于通过所述mock报文通知所述支付服务端所述测试订单已支付。
14.一种第二存储器,所述第二存储器存储有计算机程序,其特征在于,所述计算机程序被第二处理器执行如下步骤:
接收支付服务端发送的测试订单和测试用户信息;
对所述测试用户信息和所述测试订单进行权限验证。
根据经过验证的所述测试订单的信息构造一个带内部约定签名的支付成功的mock报文;
通过所述mock报文通知所述支付服务端所述测试订单已支付。
15.一种mock服务端,包括第二存储器、第二处理器及存储在所述第二存储器中并可在所述第二处理器上运行的计算机程序,其特征在于,所述第二处理器执行所述计算机程序时实现如权利要求10至12任意一项所述的非侵入式mock支付方法的步骤。
16.一种非侵入式mock支付系统,其特征在于,包括:如权利要求7所述的支付服务端和如权利要求13所述的mock服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811079913.1A CN110912856A (zh) | 2018-09-14 | 2018-09-14 | 非侵入式mock支付方法及系统、支付服务端、mock服务端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811079913.1A CN110912856A (zh) | 2018-09-14 | 2018-09-14 | 非侵入式mock支付方法及系统、支付服务端、mock服务端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110912856A true CN110912856A (zh) | 2020-03-24 |
Family
ID=69812456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811079913.1A Pending CN110912856A (zh) | 2018-09-14 | 2018-09-14 | 非侵入式mock支付方法及系统、支付服务端、mock服务端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912856A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459825A (zh) * | 2020-04-03 | 2020-07-28 | 银清科技有限公司 | 支付业务的区块链应用系统、方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778307A (zh) * | 2016-12-16 | 2017-05-31 | 浪潮软件集团有限公司 | 一种基于云测试平台实现权限动态管理的方法 |
CN107220169A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 一种模拟服务器返回定制化数据的方法和设备 |
CN107291612A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种测试的方法及装置 |
US20170364355A1 (en) * | 2016-06-15 | 2017-12-21 | Phoenix Contact Gmbh & Co. Kg | Data organization procedure and development environment system |
CN108347361A (zh) * | 2018-03-06 | 2018-07-31 | 平安普惠企业管理有限公司 | 应用程序测试方法、装置、计算机设备和存储介质 |
-
2018
- 2018-09-14 CN CN201811079913.1A patent/CN110912856A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220169A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 一种模拟服务器返回定制化数据的方法和设备 |
CN107291612A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种测试的方法及装置 |
US20170364355A1 (en) * | 2016-06-15 | 2017-12-21 | Phoenix Contact Gmbh & Co. Kg | Data organization procedure and development environment system |
CN106778307A (zh) * | 2016-12-16 | 2017-05-31 | 浪潮软件集团有限公司 | 一种基于云测试平台实现权限动态管理的方法 |
CN108347361A (zh) * | 2018-03-06 | 2018-07-31 | 平安普惠企业管理有限公司 | 应用程序测试方法、装置、计算机设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459825A (zh) * | 2020-04-03 | 2020-07-28 | 银清科技有限公司 | 支付业务的区块链应用系统、方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6389302B2 (ja) | 各種バンキングサービスとユーザの対話における疑わしいユーザ行動の識別のためのシステム及び方法 | |
CN106357640B (zh) | 基于区块链网络的身份认证方法、系统及服务器 | |
CN104169952B (zh) | 一种网络支付方法、装置及系统 | |
CN106372940A (zh) | 基于区块链网络的身份认证方法、服务器及终端设备 | |
KR20190031545A (ko) | 서비스 작업 위험성을 제어하기 위한 방법 및 디바이스 | |
KR20180113229A (ko) | 블록 체인을 이용한 대출 서비스 제공 방법 및 이를 실행하는 시스템 | |
KR101143999B1 (ko) | Api 기반 어플리케이션 분석 장치 및 방법 | |
CN104283841A (zh) | 对第三方应用进行服务访问控制的方法、装置及系统 | |
CN108900559A (zh) | 登录凭证的管理方法、装置、计算机设备及存储介质 | |
CN103617531A (zh) | 基于可信二维码的安全支付方法和装置 | |
KR20180130623A (ko) | 어플리케이션 무결성검증을 위한 블록체인 구성방법 및 어플리케이션 무결성 검증방법 | |
Sun et al. | Defining security requirements with the common criteria: Applications, adoptions, and challenges | |
Marforio et al. | Hardened setup of personalized security indicators to counter phishing attacks in mobile banking | |
CN105225111A (zh) | 一种网上支付验证的方法和设备 | |
CN105740670A (zh) | 应用加密、启动方法和装置 | |
CN111105224A (zh) | 支付反馈信息的处理方法、装置、电子设备和存储介质 | |
CN110912856A (zh) | 非侵入式mock支付方法及系统、支付服务端、mock服务端 | |
CN114218911A (zh) | 结清证明开具方法及装置、存储介质及电子设备 | |
CN109657170A (zh) | 网页加载方法、装置、计算机设备及存储介质 | |
Kinai et al. | Multi-factor authentication for users of non-internet based applications of blockchain-based platforms | |
CN108763934B (zh) | 数据处理方法及装置、存储介质、服务器 | |
CN110544087A (zh) | 移动支付方法、装置、设备及计算机可读存储介质 | |
EP3729323A1 (en) | Secure mobile platform | |
CN106302344A (zh) | 安全扫描方法及系统 | |
JP2005065035A (ja) | Icカードを利用した代理者認証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 200438 9 / F, 10 / F, 11 / F, 12 / F, 38 Lane 1688, Guoquan North Road, Yangpu District, Shanghai Applicant after: QIANXUN SPATIAL INTELLIGENCE Inc. Address before: Room j165, 1st floor, building 64, 1436 Jungong Road, Yangpu District, Shanghai, 200433 Applicant before: QIANXUN SPATIAL INTELLIGENCE Inc. |
|
CB02 | Change of applicant information | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200324 |
|
WD01 | Invention patent application deemed withdrawn after publication |