本发明涉及支付技术领域,尤其涉及一种移动支付接口封装方法。
背景技术:
近年来,大量的传统行业为了谋求生存新方式,利用信息技术、互联网平台,让互联网与传统行业进行深度融合,也就是所谓的“互联网+”。
在此大环境下,催生了大量的互联网产品,类似手机移动app或者微信小程序等应用,这些互联网产品中大部分都需要引入移动支付功能。移动支付也称为“手机支付”,就是允许用户使用移动终端(手机、平板电脑等)对所消费的商品或者服务进行账务支付的一种服务方式。
而为了适应不同的客户群体,一款“互联网+”产品可能需要接入3到4种互联网支付平台的收款方式,例如支付宝、微信、银联、百度钱包等。而不同的互联网支付平台使用的开发标准和安全验证机制都有不同之处。这样就加大了互联网产品的开发维护难度。
所以,对于传统行业管理运营者来说,要投入一定的技术开发费用,用于互联网产品支付接口的开发和更新维护。对于不懂技术的客户要自己组建技术团队去完成难度和费用比较大,但是交由供应商处理也需要针对不同的平台做开发,也存在开发费用,而且还要自己承担资金安全风险。
当前很多传统行业的做法是为了降低风险减少接入的互联网支付平台,只接入1到2家主流平台来规避上述问题。
技术实现要素:
鉴于目前存在的上述不足,本发明提供一种移动支付接口封装方法,整合了主流的互联网第三方支付平台,将各个平台的支付接口进行再次封装,提高互联网产品支付模块的开发效率和降低后期的维护成本。
为达到上述目的,本发明的实施例采用如下技术方案:
一种移动支付接口封装方法,所述移动支付接口封装方法包括以下步骤:
事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息;
移动客户端发起支付请求;
将客户端设备编号和支付参数使用平台发放的私钥进行签名;
签名成功则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数,向各个平台发起支付请求;
根据不同的支付方式,使用不同的回调方法,通知客户端支付成功。
依照本发明的一个方面,所述事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息包括:客户终端都需要事先在平台上配置自己的支付账号信息,平台根据设备识别号绑定设备和支付账号,将签名私钥发送到设备上。
依照本发明的一个方面,所述事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息包括:客户终端都需要事先在平台上配置自己的支付账号信息,平台生成私钥代码放到网站运行环境中。
依照本发明的一个方面,所述将客户端设备编号和支付参数使用平台发放的私钥进行签名包括:平台对接收到的参数进行验签,如果验签失败则退出,成功则继续。
依照本发明的一个方面,所述将客户端设备编号和支付参数使用平台发放的私钥进行签名包括:验签成功后,再次判断设备编号和私钥的有效性,如果系统禁用了则退出。
依照本发明的一个方面,所述签名成功则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数,向各个平台发起支付请求包括:设备如果有效则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数等,向各个平台发起支付请求。
依照本发明的一个方面,所述移动支付接口封装方法包括:将移动支付平台独立部署到云服务器或者私有服务器上,在后台配置账号支付信息之后就可以通过测试api完成支付请求。
依照本发明的一个方面,所述移动支付平台部署的步骤如下:
申请各项支付渠道,并获得支付配置参数;
将参数配置到系统中,上传密钥文件;
系统分配终端,可以是手机、手持收款终端、银联设备终端中一种或多种;
使用设备或者通过网站、支付程序收款。
本发明实施的优点:本发明所述的移动支付接口封装方法包括以下步骤:事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息;移动客户端发起支付请求;将客户端设备编号和支付参数使用平台发放的私钥进行签名;签名成功则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数,向各个平台发起支付请求;根据不同的支付方式,使用不同的回调方法,通知客户端支付成功;整合了主流的互联网第三方支付平台,将各个平台的支付接口进行再次封装,提高互联网产品支付模块的开发效率和降低后期的维护成本。对于产品开发来说不同支付方式,只是改变一个参数而已,剩下的程序会自动完成各自的功能。这种方式还可以将支付部分单独剥离出产品的应用层,防止应用服务器被黑客攻击连带影响支付部分的功能,影响资金安全。支持现有支付宝、微信、银联的支付接口,包括扫码、刷卡、在线等方式。避免不同的项目上反复开发和部署支付模块。另外根据现有指定的接口规则,将来可以扩张更多的支付平台。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的一种移动支付接口封装方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种移动支付接口封装方法,所述移动支付接口封装方法包括以下步骤:
步骤s1:事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息;
所述事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息包括:客户终端都需要事先在平台上配置自己的支付账号信息,如果是app方式运行的,平台根据设备识别号绑定设备和支付账号,将签名私钥发送到设备上。
所述事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息包括:客户终端都需要事先在平台上配置自己的支付账号信息,如果是在线支付的则由平台生成私钥代码放到网站运行环境中。
步骤s2:移动客户端发起支付请求;
步骤s3:将客户端设备编号和支付参数使用平台发放的私钥进行签名;
所述将客户端设备编号和支付参数使用平台发放的私钥进行签名包括:平台对接收到的参数进行验签,如果验签失败则退出,成功则继续。
验签成功后,再次判断设备编号和私钥的有效性,如果系统禁用了则退出。
步骤s4:签名成功则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数,向各个平台发起支付请求;
所述签名成功则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数,向各个平台发起支付请求包括:设备如果有效则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数等,向各个平台发起支付请求。
步骤s5:根据不同的支付方式,使用不同的回调方法,通知客户端支付成功。
所述移动支付接口封装方法还包括:将移动支付平台独立部署到云服务器或者私有服务器上,在后台配置账号支付信息之后就可以通过测试api完成支付请求。
在实际应用中,所述移动支付平台部署的步骤如下:
申请各项支付渠道,并获得支付配置参数;
将参数配置到系统中,上传密钥文件;
系统分配终端,可以是手机、手持收款终端、银联设备终端中一种或多种;
使用设备或者通过网站、支付程序收款。
在实际应用中,可有如下具体实施方式:
1)客户终端都需要事先在平台上配置自己的支付账号信息,如果是app方式运行的,系统会根据设备识别号绑定设备和支付账号,将签名私钥发送到设备上,如果是在线支付的则由平台生成私钥代码放到网站运行环境中。
2)所有客户终端要进行收付款操作的时候,将设备编号和支付参数使用平台发放的私钥进行签名。然后调用平台的支付接口。
3)平台对接收到的参数进行验签,如果验签失败则退出。
4)如果验签成功,再次判断设备编号和私钥的有效性,如果系统禁用了则退出。
5)设备如果有效则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数等,向各个平台发起支付请求。
6)根据不同的支付方式,使用不同的回调方法,通知客户端支付成功。
例如,app当面扫码付款的验签流程:
1)设备登录验证:
2)传入参数
其中sign参数是对json的值进行签名后的结果。
平台根据设备号和json的值进行验签,验签通过后返回如下的值:
3)选择扫码收款:
传入参数如下:
其中sign参数是对json的值进行签名后的结果。
如果验签通过,则按照paycode指定的支付方式去完成收付款操作并返回成功或者失败。
注:paycode可以是,alipaysao支付宝扫码支付(顾客扫商家的二维码),alipayshua支付宝刷卡支付(商家扫描客户二维码);wechatsao微信扫码支付;wechatshua微信刷卡支付;unionpay银联刷卡支付。
本发明基于java开发语言(marven框架)、mysql数据库做的研发。
部署也很简单,可以将程序独立部署到云服务器或者私有服务器上,在后台配置账号支付信息之后就可以通过测试api完成支付请求。
部署步骤如下:
1)申请各项支付渠道,并获得支付配置参数。
2)将参数配置到系统中,例如支付宝需要配置appid,secretid,上传密钥文件;
3)系统分配终端,可以是手机、手持收款终端、银联设备终端。如果是网站则做相应的支付接口调用开发,所有的支付渠道统一加密验签方式,不需要对每个支付渠道单独开发接口。
4)使用设备或者通过网站、微信收款。
总而言之,本发明可以满足企业用户同时有线上和线下收款的需求,且降低开发成本,避免不同的接口反复开发,需要大量人力维护的问题。
现有支付接口涵盖了:1)app当面扫码刷卡支付,2)app、网站、手机站点线上支付两种方式。
已经整合的支付方式有支付宝、微信、银联。可以持续扩充更多的收款渠道。
支付和应用层剥离保障支付服务器安全、通讯采用rsa验签、https通讯加密方式保证通讯双方的身份可靠有效。
对现有的主流支付接口进行再次封装便于传统行业公司开发互联网产品的时候使用统一的接口开发方式和安全验证机制,接入支付宝、微信、银联支付。
在实际应用中,本发明基于java开发语言(marven框架)、mysql数据库做的研发。
研发后通过网络api的方式进行访问,加密方式采用rsa64位的公私钥验签方式对访问者身份进行验证。
部署也很简单,可以将程序独立部署到云服务器或者私有服务器上,在后台配置账号支付信息之后就可以通过测试api完成支付请求。
本发明可以接入到手持智能终端(安卓系统),在线下门店进行收款,类似银联的收款设备。如果安装在手机中,则手机可以替代原有的客户扫码转账的方式,而是直接扫描客户手机二维码完成收款。
也可以接入到pc端/手机端网页中,完成在线付款,例如通过电脑浏览器打开网站完成购物付款,或者通过手机浏览器、微信公众号等完成付款操作。
本发明实施的优点:本发明所述的移动支付接口封装方法包括以下步骤:事先创建一移动支付平台用以由移动客户端在平台上配置支付账号信息;移动客户端发起支付请求;将客户端设备编号和支付参数使用平台发放的私钥进行签名;签名成功则根据提交的支付种类,按照平台上配置好的各个支付方式密钥和参数,向各个平台发起支付请求;根据不同的支付方式,使用不同的回调方法,通知客户端支付成功;整合了主流的互联网第三方支付平台,将各个平台的支付接口进行再次封装,提高互联网产品支付模块的开发效率和降低后期的维护成本。对于产品开发来说不同支付方式,只是改变一个参数而已,剩下的程序会自动完成各自的功能。这种方式还可以将支付部分单独剥离出产品的应用层,防止应用服务器被黑客攻击连带影响支付部分的功能,影响资金安全。支持现有支付宝、微信、银联的支付接口,包括扫码、刷卡、在线等方式。避免不同的项目上反复开发和部署支付模块。另外根据现有指定的接口规则,将来可以扩张更多的支付平台。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。