一种支付方法、服务端、应用端以及支付系统与流程

文档序号:16510889发布日期:2019-01-05 09:19阅读:165来源:国知局
一种支付方法、服务端、应用端以及支付系统与流程

本发明涉及计算机技术领域,特别涉及一种支付方法、服务端、应用端以及支付系统。



背景技术:

随着计算机技术的发展,线上支付已成为人们常用的支付方式,例如采用支付宝或者微信等支付app进行支付。随之而来的,线上支付的信息安全性也越来越受到人们的重视。

目前,用户在使用第三方app进行支付时,在第三方app中输入支付信息,然后由第三方app将支付信息转发给支付app,由支付app根据支付信息进行支付。

在此过程中,第三方app直接将用户输入的支付信息进行转发,在转发过程中该支付信息可能被篡改,从而导致支付失败或支付错误。由此可见,现有的支付方式安全性较低。



技术实现要素:

本发明实施例提供了一种支付方法、服务端、应用端以及支付系统,能提高支付安全性。

第一方面,本发明提供了一种支付方法,应用于服务端;包括:

获取应用端发送的加密支付信息;

对所述加密支付信息进行解密,得到支付信息;

确定与所述支付信息相对应的数字证书;

根据预设的规范组装信息调用支付端对应的签名接口,利用所述签名接口将所述支付信息和所述数字证书发送给支付端;

接收所述支付端根据所述支付信息和所述数字证书发送的签名信息,并将所述签名信息发送给所述应用端,以使所述应用端根据所述签名信息调用所述支付端,利用所述支付端进行支付。

可选地,

所述对所述加密支付信息进行解密,得到支付信息,包括:

利用以下算法,对所述加密支付信息进行解密,得到所述支付信息;

m=dn3(en2(dn1(c)))

其中,c表征所述加密支付信息,d表征des解密算法,e表征des加密算法,n1表征预设的第一解密密钥,n2表征预设的第二解密密钥,n3表征预设的第三解密密钥。

可选地,

在所述将所述签名信息发送给所述应用端之后,进一步包括:

接收所述支付端发送的异步回调信息;其中,所述异步回调信息包括:已支付订单信息、已支付金额和已收款对象信息;

从所述支付信息中解析出待支付订单信息、待支付金额以及待收款对象信息;

确定所述待支付订单信息是否与所述已支付订单信息相同,如果是,确定所述待支付金额是否与所述已支付金额相同,如果是,确定所述待收款对象是否与所述已收款对象相同,如果是,则执行所述支付信息对应的目标业务。

第二方面,本发明实施例提供了一种支付方法,应用于应用端;包括:

获取用户输入的支付信息;

对所述支付信息进行加密,生成加密支付信息,并将所述加密支付信息发送给服务端;

接收所述服务端根据所述加密支付信息发送的签名信息;

根据所述签名信息调用支付端,利用调用的所述支付端进行支付。

可选地,

所述对所述支付信息进行加密,生成加密支付信息,包括:

利用以下算法,对所述支付信息进行加密,生成所述加密支付信息;

c=ek3(dk2(ek1(m)))

其中,c表征所述加密支付信息,e表征des加密算法,d表征des解密算法,k1表征预设的第一加密密钥,k2表征预设的第二加密密钥,k3表征预设的第三加密密钥,m表征所述支付信息。

第三方面,本发明实施例提供了一种服务端,包括:解密模块、发送模块和调用模块;其中,

所述解密模块,用于获取应用端发送的加密支付信息,并对所述加密支付信息进行解密,得到支付信息;

所述发送模块,用于确定与所述支付信息相对应的数字证书;根据预设的规范组装信息调用支付端对应的签名接口,利用所述签名接口将所述支付信息和所述数字证书发送给支付端;

所述调用模块,用于接收所述支付端根据所述支付信息和所述数字证书发送的签名信息,并将所述签名信息发送给所述应用端,以使所述应用端根据所述签名信息调用所述支付端,利用所述支付端进行支付。

可选地,

所述解密单元,用于利用以下算法,对所述加密支付信息进行解密,得到所述支付信息;

m=dn3(en2(dn1(c)))

其中,c表征所述加密支付信息,d表征des解密算法,e表征des加密算法,n1表征预设的第一解密密钥,n2表征预设的第二解密密钥,n3表征预设的第三解密密钥;

可选地,

进一步包括:验证模块;其中,

所述验证模块,用于接收所述支付端发送的异步回调信息;其中,所述异步回调信息包括:已支付订单信息、已支付金额和已收款对象信息;从所述支付信息中解析出待支付订单信息、待支付金额以及待收款对象信息;确定所述待支付订单信息是否与所述已支付订单信息相同,如果是,确定所述待支付金额是否与所述已支付金额相同,如果是,确定所述待收款对象是否与所述已收款对象相同,如果是,则执行所述支付信息对应的目标业务。

第四方面,本发明实施例提供了一种应用端,包括:加密模块、接收模块和支付模块;其中,

所述加密模块,用于获取用户输入的支付信息,对所述支付信息进行加密,生成加密支付信息,并将所述加密支付信息发送给服务端;

所述接收模块,用于接收所述服务端根据所述加密支付信息发送的签名信息;

所述支付模块,用于根据所述签名信息调用支付端,利用调用的所述支付端进行支付。

可选地,

所述加密模块,用于利用以下算法,对所述支付信息进行加密,生成所述加密支付信息;

c=ek3(dk2(ek1(m)))

其中,c表征所述加密支付信息,e表征des加密算法,d表征des解密算法,k1表征预设的第一加密密钥,k2表征预设的第二加密密钥,k3表征预设的第三加密密钥,m表征所述支付信息。

第五方面,本发明实施例提供了一种支付系统,包括:本发明上述任一实施例提供的服务端、本发明上述任一实施例提供的应用端以及支付端;其中,

所述支付端,用于利用签名接口接收所述服务端发送的支付信息和数字证书;验证所述数字证书是否合法,如果是,则生成与所述支付信息相对应的签名信息,并将所述签名信息发送给所述服务端;当被所述应用端调用时,根据所述签名信息进行支付。

本发明实施例提供了一种支付方法、服务端、应用端以及支付系统,应用端将支付信息加密后发送给服务端,服务端接收到应用端发送的加密支付信息后,对其进行解密,得到支付信息。然后确定该支付信息对应的数字证书,并调用支付端的签名接口,将数字证书和支付信息通过调用的签名接口发送给支付端,以使支付端在验证数字证书合法后,向服务端返回相应的签名信息。服务端在接收到支付端返回的签名信息时,将该签名信息发送给应用端,以使应用端根据该签名信息调用支付端,再利用被调用的支付端进行支付。在此过程中,应用端与服务端进行支付信息交互时,应用端将支付信息进行加密后再发送给服务端,服务端与支付端进行信息交互时,通过验证数字证书的合法性以保证数据的准确性。因此,在支付过程中,通过加密和数字证书校验环节,使得支付信息的传输更加安全,从而提高了支付安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种支付方法的流程图;

图2是本发明另一个实施例提供的一种支付方法的流程图;

图3是本发明一个实施例提供的一种服务端的结构示意图;

图4是本发明一个实施例提供的一种支付端的结构示意图;

图5是本发明一个实施例提供的一种支付系统的结构示意图;

图6是本发明又一个实施例提供的一种支付方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种支付方法,应用于服务端;该方法可以包括以下步骤:

步骤101:获取应用端发送的加密支付信息;

步骤102:对所述加密支付信息进行解密,得到支付信息;

步骤103:确定与所述支付信息相对应的数字证书;

步骤104:根据预设的规范组装信息调用支付端对应的签名接口,利用所述签名接口将所述支付信息和所述数字证书发送给支付端;

步骤105:接收所述支付端根据所述支付信息和所述数字证书发送的签名信息,并将所述签名信息发送给所述应用端,以使所述应用端根据所述签名信息调用所述支付端,利用所述支付端进行支付。

上述实施例中,应用端将支付信息加密后发送给服务端,服务端接收到应用端发送的加密支付信息后,对其进行解密,得到支付信息。然后确定该支付信息对应的数字证书,并调用支付端的签名接口,将数字证书和支付信息通过调用的签名接口发送给支付端,以使支付端在验证数字证书合法后,向服务端返回相应的签名信息。服务端在接收到支付端返回的签名信息时,将该签名信息发送给应用端,以使应用端根据该签名信息调用支付端,再利用被调用的支付端进行支付。在此过程中,应用端与服务端进行支付信息交互时,应用端将支付信息进行加密后再发送给服务端,服务端与支付端进行信息交互时,通过验证数字证书的合法性以保证数据的准确性。因此,在支付过程中,通过加密和数字证书校验环节,使得支付信息的传输更加安全,从而提高了支付安全性。

本发明一个实施例中,步骤102的具体实施方式,可以包括:

利用以下算法,对所述加密支付信息进行解密,得到所述支付信息;

m=dn3(en2(dn1(c)))

其中,c表征所述加密支付信息,d表征des解密算法,e表征des加密算法,n1表征预设的第一解密密钥,n2表征预设的第二解密密钥,n3表征预设的第三解密密钥。

应用端对支付信息进行加密时,采用3des算法进行加密,相应的,服务端对加密支付信息进行解密时,也采用相应的解密算法对加密支付信息进行解密。3des的密钥长度较长,因此通过3des算法加密后的加密支付信息,其被暴力破解的难度也增加,有效避免了信息传输过程中的非法篡改,从而进一步提高了支付信息的传输安全性,进而提高了支付安全性。

本发明一个实施例中,在步骤105之后,可以进一步包括:

接收所述支付端发送的异步回调信息;其中,所述异步回调信息包括:已支付订单信息、已支付金额和已收款对象信息;

从所述支付信息中解析出待支付订单信息、待支付金额以及待收款对象信息;

确定所述待支付订单信息是否与所述已支付订单信息相同,如果是,确定所述待支付金额是否与所述已支付金额相同,如果是,确定所述待收款对象是否与所述已收款对象相同,如果是,则执行所述支付信息对应的目标业务。

支付端在支付后,向应用端返回同步回调信息,以向应用端反馈是否支付成功的结果,并通过应用端将此结果展示给用户。同时,支付端向服务端发送异步回调信息,以向服务端反馈已支付订单信息、已支付金额和已收款对象信息等信息。服务端在接收到支付端发送的异步回调信息时,确定已支付订单信息、已支付金额和已收款对象信息是否分别与支付信息中的待支付订单信息、待支付金额以及待收款对象信息相同,如果是,则表示整个支付过程成功,即可执行支付信息对应的目标业务。

例如,服务端先验证异步回调信息中的out_trade_no是否为商户系统中创建的订单号,如果是,则说明已支付订单信息与待支付订单信息相同,然后再判断异步回调信息中的total_amount是否确实为该订单的实际金额,即是否为商户订单创建时的金额,如果是,则说明已支付金额与待支付金额相同,然后再对异步回调信息中的seller_id或者seller_email进行校验,并验证app_id是否为该商户本身,如果是,则说明待收款对象与已收款对象相同,此时才执行相应的目标业务。由此,通过对异步回调信息进行验证,以验证支付对象和支付金额的正确性,当验证通过时,才执行相应的目标业务,从而保证了业务执行的正确性。

如图2所示,本发明实施例提供了一种支付方法,应用于应用端,该方法可以包括以下步骤:

步骤201:获取用户输入的支付信息;

步骤202:对所述支付信息进行加密,生成加密支付信息,并将所述加密支付信息发送给服务端;

步骤203:接收所述服务端根据所述加密支付信息发送的签名信息;

步骤204:根据所述签名信息调用支付端,利用调用的所述支付端进行支付。

上述实施例中,应用端在获取到用户输入的支付信息之后,将该支付信息加密后再发送给服务端,通过接收服务端根据加密支付信息发送的签名信息,调用支付端,以利用支付端进行支付。在此过程中,应用端与服务端进行支付信息交互时,应用端将支付信息进行加密后再发送给服务端,通过加密使得支付信息的传输更加安全,从而提高了支付安全性。

本发明一个实施例中,步骤202的具体实施方式,可以包括:

利用以下算法,对所述支付信息进行加密,生成所述加密支付信息;

c=ek3(dk2(ek1(m)))

其中,c表征所述加密支付信息,e表征des加密算法,d表征des解密算法,k1表征预设的第一加密密钥,k2表征预设的第二加密密钥,k3表征预设的第三加密密钥,m表征所述支付信息。

应用端对支付信息进行加密时,采用3des算法进行加密,3des的密钥长度较长,因此通过3des算法加密后的加密支付信息,其被暴力破解的难度也增加,有效避免了信息传输过程中的非法篡改,从而进一步提高了支付信息的传输安全性,进而提高了支付安全性。

如图3所示,本发明实施例提供了一种服务端,包括:解密模块301、发送模块302和调用模块303;其中,

所述解密模块301,用于获取应用端发送的加密支付信息,并对所述加密支付信息进行解密,得到支付信息;

所述发送模块302,用于确定与所述支付信息相对应的数字证书;根据预设的规范组装信息调用支付端对应的签名接口,利用所述签名接口将所述支付信息和所述数字证书发送给支付端;

所述调用模块303,用于接收所述支付端根据所述支付信息和所述数字证书发送的签名信息,并将所述签名信息发送给所述应用端,以使所述应用端根据所述签名信息调用所述支付端,利用所述支付端进行支付。

本发明一个实施例中,所述解密单元301,用于利用以下算法,对所述加密支付信息进行解密,得到所述支付信息;

m=dn3(en2(dn1(c)))

其中,c表征所述加密支付信息,d表征des解密算法,e表征des加密算法,n1表征预设的第一解密密钥,n2表征预设的第二解密密钥,n3表征预设的第三解密密钥;

本发明一个实施例中,该服务端可以进一步包括:验证模块;其中,

所述验证模块,用于接收所述支付端发送的异步回调信息;其中,所述异步回调信息包括:已支付订单信息、已支付金额和已收款对象信息;从所述支付信息中解析出待支付订单信息、待支付金额以及待收款对象信息;确定所述待支付订单信息是否与所述已支付订单信息相同,如果是,确定所述待支付金额是否与所述已支付金额相同,如果是,确定所述待收款对象是否与所述已收款对象相同,如果是,则执行所述支付信息对应的目标业务。

如图4所示,本发明实施例提供了一种应用端,包括:加密模块401、接收模块402和支付模块403;其中,

所述加密模块401,用于获取用户输入的支付信息,对所述支付信息进行加密,生成加密支付信息,并将所述加密支付信息发送给服务端;

所述接收模块402,用于接收所述服务端根据所述加密支付信息发送的签名信息;

所述支付模块403,用于根据所述签名信息调用支付端,利用调用的所述支付端进行支付。

本发明一个实施例中,所述加密模块401,用于利用以下算法,对所述支付信息进行加密,生成所述加密支付信息;

c=ek3(dk2(ek1(m)))

其中,c表征所述加密支付信息,e表征des加密算法,d表征des解密算法,k1表征预设的第一加密密钥,k2表征预设的第二加密密钥,k3表征预设的第三加密密钥,m表征所述支付信息。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明实施例提供了服务端和应用端,装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,除了处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。

如图5所示,本发明实施例提供了一种支付系统,包括:本发明上述任一实施例提供的服务端501、本发明上述任一实施例提供的应用端502以及支付端503;其中,

所述支付端503,用于利用签名接口接收所述服务端501发送的支付信息和数字证书;验证所述数字证书是否合法,如果是,则生成与所述支付信息相对应的签名信息,并将所述签名信息发送给所述服务端;当被所述应用端502调用时,根据所述签名信息进行支付。

以支付宝作为支付端为例,本发明实施例提供的支付系统,可基于支付宝官方的接口文档,结合cordova实现手机app的接口,java实现后台接口,实现起来非常简便。在支付过程中加入了数字证书,使接口成为了https的方式,提高了数据传输的安全性,加入了自主的加密和校验环节,可以防止数据被非法篡改,保证了数据的准确性。

下面以在现有框架基础上,以java为开发语言,springmvc+mybatis的架构上,实现手机app端调起支付宝客户端进行支付并操作后续业务为例,对本发明实施例提供的支付方法进行详细说明,如图6所示,该方法可以包括以下步骤:

步骤601:手机app获取用户输入的支付信息,利用3des算法对所述支付信息进行加密,生成加密支付信息,并将所述加密支付信息发送给服务端。

步骤602:服务端对所述加密支付信息进行解密,得到支付信息,并确定与所述支付信息相对应的数字证书。

步骤603:服务端根据预设的规范组装信息调用支付宝的签名接口,利用所述签名接口将所述支付信息和所述数字证书发送给支付宝。

步骤604:支付宝对所述数字证书进行验证,当所述数字证书合法时,根据所述支付信息生成签名信息,并将所述签名信息发送给服务端。

步骤605:服务端将所述签名信息发送给手机app。

步骤606:手机app根据所述签名信息调用支付宝。

步骤607:支付宝被调用时,生成密码输入界面,并将所述密码输入界面展示给用户;接收用户通过所述密码输入界面输入的支付密码,根据所述支付密码和签名信息进行支付。

上述实施例提供的支付方法在cordova和springmvc架构的基础上开发,其中,手机app使用的是cordova开发,支付接口使用springmvc开发,应用广泛,使用简便。并且,支付宝支付应用广泛,后续项目中此类需求会不断出现,可在后续项目中直接使用该方法,以节约研究时间。另外,在此过程中,加入了数字证书,使接口成为了https的方式,数据传输安全,同时加入了自主的校验环节和3des加密,可以防篡改,保证了数据的准确。

本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明上述任一实施例提供的方法。

本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明上述任一实施例提供的方法。

综上所述,本发明以上各个实施例至少具有如下有益效果:

1、在本发明实施例中,应用端将支付信息加密后发送给服务端,服务端接收到应用端发送的加密支付信息后,对其进行解密,得到支付信息。然后确定该支付信息对应的数字证书,并调用支付端的签名接口,将数字证书和支付信息通过调用的签名接口发送给支付端,以使支付端在验证数字证书合法后,向服务端返回相应的签名信息。服务端在接收到支付端返回的签名信息时,将该签名信息发送给应用端,以使应用端根据该签名信息调用支付端,再利用被调用的支付端进行支付。在此过程中,应用端与服务端进行支付信息交互时,应用端将支付信息进行加密后再发送给服务端,服务端与支付端进行信息交互时,通过验证数字证书的合法性以保证数据的准确性。因此,在支付过程中,通过加密和数字证书校验环节,使得支付信息的传输更加安全,从而提高了支付安全性。

2、在本发明实施例中,应用端对支付信息进行加密时,采用3des算法进行加密,相应的,服务端对加密支付信息进行解密时,也采用相应的解密算法对加密支付信息进行解密。3des的密钥长度较长,因此通过3des算法加密后的加密支付信息,其被暴力破解的难度也增加,有效避免了信息传输过程中的非法篡改,从而进一步提高了支付信息的传输安全性,进而提高了支付安全性。

3、在本发明实施例中,支付端在支付后,向服务端发送异步回调信息,以向服务端反馈已支付订单信息、已支付金额和已收款对象信息等信息。服务端在接收到支付端发送的异步回调信息时,确定已支付订单信息、已支付金额和已收款对象信息是否分别与支付信息中的待支付订单信息、待支付金额以及待收款对象信息相同,如果是,再执行支付信息对应的目标业务。由此,通过对异步回调信息进行验证,以验证支付对象和支付金额的正确性,当验证通过时,才执行相应的目标业务,从而保证了业务执行的正确性。

4、在本发明实施例中,在cordova和springmvc架构的基础上开发,其中,手机app使用的是cordova开发,支付接口使用springmvc开发,应用广泛,使用简便。并且,支付宝支付应用广泛,后续项目中此类需求会不断出现,可在后续项目中直接使用该方法,从而节约研究时间。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1