安卓平台运行传统支付应用的方法与流程

文档序号:15366475发布日期:2018-09-07 22:04阅读:286来源:国知局

本发明涉及传统支付应用,尤其涉及在安卓终端中运行传统支付应用的方法。



背景技术:

传统平台的POS(Point of Sales,电子销售点)/EPOS(electronic point of sale,电子支付系统)应用都是基于C语言开发而来,如果要将其交易移植到Android(安卓)系统的智能终端上,则需要重新基于安卓开发应用。这种方法,需要耗费大量的人力物力在应用开发和交易调试上。



技术实现要素:

本发明要解决的技术问题在于,基于现有技术的上述缺陷,提出一种安卓平台运行传统支付应用的方法,能够以较低的代价,达成传统支付应用功能在安卓平台的实现。

本发明解决其技术问题所采用的技术方案是:提供一种安卓平台运行传统支付应用的方法,在传统支付应用与外设驱动之间设置中间件,该中间件包括:运行时API层,用于向传统支付应用提供统一的API;SDK层,用于给该运行时API层提供C程序接口;SDK服务层,用于提供安卓层面接口,其与该SDK层之间通过SOCKET指令进行交互;以及设备服务层,用于提供根据具体设备定制的安卓驱动及特殊权限操作接口,供SDK服务层调用。

在一些实施例中,该传统支付应用的启动过程包括:首先,将SDK服务层加载起来;之后,加载SDK层的加密文件系统,等待运行环境准备就绪以后,才开始加载应用。

在一些实施例中,该传统支付应用是以线程的方式运行在该安卓平台之上的,加载应用的过程包括:首先,创建应用线程;然后,加载应用库;接着,校验该接口的版本和该传统支付应用的版本是否匹配,匹配的话,进入应用主函数,直到应用运行结束,退出线程,不匹配的话,直接终止线程。

在一些实施例中,该传统支付应用调用接口的过程包括:如果是SDK层可以直接处理的,则SDK层处理完成后将结果返回给该传统支付应用。

在一些实施例中,该传统支付应用调用接口的过程还包括:如果不是SDK层可以直接处理的,则首先将函数命令以及参数添加到命令队列中,然后通过SOCKET指令依次发送给该SDK服务层,如果是SDK服务层可以直接处理的,该SDK服务层将返回结果通过SOCKET反馈给SDK层,该SDK层再将结果返回给该传统支付应用。

在一些实施例中,该传统支付应用调用接口的过程还包括:如果不是SDK服务层可以直接处理的,则该SDK服务层通过调用该设备服务层来完成接口功能,并将返回结果通过SOCKET反馈给SDK层,SDK层再将结果返回给该传统支付应用。

在一些实施例中,该SDK层包括:指令组包,标准库,日志管理,应用管理,加密算法,加密文件系统以及虚拟串口。

在一些实施例中,该SDK服务层包括:硬件驱动,系统设置以及用户接口。

在一些实施例中,该设备服务层能够提供安卓驱动的设备包括:密码键盘,打印机,读卡器,网络,串口以及安全模块。

在一些实施例中,基于该中间件的接口开发的传统支付应用是只需要进行重新编译即可无缝移植到安卓平台中的。

本发明的有益效果在于,通过巧妙地在传统支付应用与外设驱动之间设置中间件,并使该中间件包括运行时API层、SDK层、SDK服务层以及设备服务层构成的四层结构,能够以较低的代价,达成传统支付应用功能在安卓平台的实现。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明的安卓平台运行传统支付应用的方法的层次结构示意。

图2为本发明的方法中传统支付应用的启动流程示意。

图3为本发明的方法中加载应用的流程示意。

图4为本发明的方法中传统支付应用的函数调用流程示意。

具体实施方式

现结合附图,对本发明的较佳实施例作详细说明。

参见图1,图1为本发明的安卓平台运行传统支付应用的方法的层次结构示意。本发明提出一种安卓平台运行传统支付应用的方法,其包括:在传统支付应用1与外设驱动2之间设置中间件3,该中间件3包括:运行时API层(Runtime)30,用于向传统支付应用1提供统一的API;SDK(Software Development Kit,软件开发工具包)层31,用于给该该运行时API层30提供C程序接口;SDK服务层(SDK server)32,用于提供安卓层面接口,其与该SDK层之间通过SOCKET(套接字,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信)指令进行交互;以及设备服务层33,用于提供根据具体设备定制的安卓驱动及特殊权限操作接口,供该SDK服务层调用。值得一提的是,基于该中间件3的接口开发的传统支付应用1是只需要进行重新编译即可无缝移植到安卓平台中的。

参见图2和图3,图2为本发明的方法中传统支付应用的启动流程示意。图3为本发明的方法中加载应用的流程示意。该传统支付应用的启动过程包括:首先,将SDK服务层加载起来(步骤201);之后,加载SDK层的加密文件系统(步骤202),等待运行环境准备就绪以后,才开始加载应用(步骤203)。具体而言,该传统支付应用是以线程的方式运行在该安卓平台之上的,加载应用的过程包括:首先,创建应用线程(步骤301);然后,加载应用库(步骤302);接着,校验该接口的版本和该传统支付应用的版本是否匹配(步骤303),匹配的话,进入应用主函数(步骤304),直到应用运行结束,退出线程(步骤305),不匹配的话,直接终止线程(步骤305)。

参见图4,图4为本发明的方法中传统支付应用的函数调用流程示意。该传统支付应用1调用该SDK层31(步骤401),如果是SDK层31可以直接处理的,则SDK层31处理完成后将结果返回给该传统支付应用1(步骤402);如果不是SDK层31可以直接处理的,则首先将函数命令以及参数添加到SOCKET客户端的命令队列中(步骤403),然后该SOCKET客户端通过SOCKET指令依次发送给SOCKET服务端(步骤405),该SDK服务层32从该SOCKET服务端接收命令(步骤407),如果是SDK服务层32可以直接处理的,该SDK服务层32将返回结果交给该SOCKET服务端(步骤408),该SOCKET服务端通过SOCKET反馈给该SOCKET客户端(步骤406),该SOCKET客户端将结果给该SDK层31(步骤404),该SDK层再将结果返回给该传统支付应用(步骤402);如果不是SDK服务层可以直接处理的,则该SDK服务层32通过调用该设备服务层33(步骤409),该设备服务层33返回结果给该SDK服务层32完成接口功能(步骤410),并将返回结果通过SOCKET反馈给SDK层31(循步骤408、406、404),SDK层31再将结果返回给该传统支付应用1(步骤402)。

参见图1,该SDK层31包括:指令组包,标准库,日志管理,应用管理,加密算法,加密文件系统以及虚拟串口。该SDK服务层32包括:硬件驱动,系统设置以及用户接口。其中,硬件驱动具体包括:网络,安全模块,密码键盘以及其他硬件。该设备服务层33能够提供安卓驱动的设备包括:密码键盘,打印机,读卡器,网络,串口、安全模块以及其他硬件。该设备服务层33还能够提供系统设置方面的支持。

本发明的有益效果在于,通过巧妙地在传统支付应用1与外设驱动2之间设置中间件3,并使该中间件3包括运行时API层30、SDK层31、SDK服务层32以及设备服务层33构成的四层结构,能够以较低的代价,达成传统支付应用功能在安卓平台的实现。

应当理解的是,以上实施例仅用以说明本发明的技术方案,而非对其限制,对本领域技术人员来说,可以对上述实施案例记载的技术方案进行修改,或者对其中部份技术特征进行等同替换;而这些修改和替换,都应属于本发明所附权利要求的保护范围。

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