CN109582312B - 一种智能pos的ui层和逻辑层分离开发方法 - Google Patents
一种智能pos的ui层和逻辑层分离开发方法 Download PDFInfo
- Publication number
- CN109582312B CN109582312B CN201811471945.6A CN201811471945A CN109582312B CN 109582312 B CN109582312 B CN 109582312B CN 201811471945 A CN201811471945 A CN 201811471945A CN 109582312 B CN109582312 B CN 109582312B
- Authority
- CN
- China
- Prior art keywords
- layer
- transaction
- logic
- interface
- development
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种智能POS的UI层和逻辑层分离开发方法,涉及***开发技术领域。该方法采取三层的分离结构,分为逻辑层、UI层和中间层,逻辑层负责处理各种交易和对应参数设置等功能,UI层则主要负责交易界面、交易结果、订单信息、参数设置界面的展示。UI层和逻辑层分别添加中间层的jar包,实现中间层的接口。通过中间层连接起来,这样就实现了逻辑和UI的分离,实现了分离开发。实现了不熟悉android界面开发人员编写基于android***的POS程序;缩短了开发的周期;逻辑和界面的分离精炼了代码,方便了后期的维护继续开发。所以,本发明方法,实现了智能POS的UI层和逻辑层的快速分离开发,而且易于后期维护。
Description
技术领域
本发明涉及***开发技术领域,尤其涉及一种智能POS的UI层和逻辑层分离开发方法。
背景技术
随着android***的发展,基于android***的POS机也在迅速的发展。它支持灵活的操作界面和多种通讯方式,可安装各色各样的应用APK软件,能够与可信安全的外部设备(密码键盘、底座等)相连,功能强大,操作简单且实用,应用前景相当广泛。
目前,基于android***的POS机的***开发方法,既要考虑对UI层的控制,又要兼顾对逻辑层的控制,即需要对UI层和逻辑层进行混合开发。
但是,对于逻辑层的开发需要技术人员具有专业的POS知识,比如要求熟悉整个收单的流程,熟悉8583报文,EMV等等诸多的专业的知识。而熟悉POS相关专业知识的人可能对android开发的UI不是特别的熟悉,所以,采用现有的开发方法,就会导致开发人员无法很轻松的完成对UI层和逻辑层的混合开发。而且,当项目开发时间周期短,开发工作量大的情况下,也会给开发人员造成较大的麻烦。
发明内容
本发明的目的在于提供一种智能POS的UI层和逻辑层分离开发方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种智能POS的UI层和逻辑层分离开发的方法,包括如下步骤:
S1,完成对UI层和逻辑层的独立开发,同时完成对中间层的开发,并将中间层进行打包,形成jar包;
S2,UI层添加中间层的jar包,实现中间层页面部分的接口;逻辑层添加中间层的jar包,继承中间层的PayApp类,PayApp类包含初始化***、启动交易、设置参数、获取参数和/或停止交易的一些方法;
S3,UI层和逻辑层分别注册中间层的交易接口和页面接口,UI层和逻辑层通过中间层的交易接口和界面管理接口进行数据传输。
优选地,UI层在基类BaseActivity中实现中间层定义的所有接口,以便于继承该基类的Activity组件进行调用,同时根据不同的交易类型定义不同的场景来展示对应的交易页面。
优选地,UI层通过中间层提供的注册方法来实现当前界面的绑定,当发起交易时调用Payment.startPay方法把交易的类型和交易的json数据传递给逻辑层,以及用于逻辑处理完毕后,调用中间层接口的com_payResult()方法获取处理的结果,并做对应的显示。
优选地,中间层的当前页面控制着和页面相关的部分,所述和页面相关的部分包括确认金额、确认***、手输***、错误提示和确认信息。
优选地,所述交易接口部分还定义了:保存参数和获取参数,UI层展示了Pos交易所需的参数,通过用户自定义设置后通过setParams方法传递到逻辑层,然后逻辑层进行写入文件保存操作;当用户进入到参数设置界面后,通过getParams方法获取相应的参数。
优选地,逻辑层定义子类去继承中间层的PayApp类,实现里面包含的初始化***、启动交易、设置参数、获取参数、停止交易的一些方法,逻辑层通过startPay方法传递过来交易类型和交易数据并对其进行逻辑处理,在处理过程中如果有确认金额或确认***的场景,通过中间层定义的相关方法进行弹窗提示,然后用户通过点击弹框上的按钮确认继续交易,待交易流程执行完毕后调用CB_payResult()方法,CB_payResult()方法包含如下的参数:交易id、错误码和交易结果信息,把交易结果传递给UI层中。
本发明的有益效果是:本发明提供的智能POS的UI层和逻辑层分离开发的方法,采取三层的分离结构,分为逻辑层、UI层和中间层,逻辑层负责处理各种交易和对应参数设置等功能,UI层则主要负责交易界面、交易结果、订单信息、参数设置界面的展示。UI层和逻辑层分别添加中间层的jar包,实现中间层的接口。通过中间层连接起来,这样就实现了逻辑和UI的分离,实现了分离开发。通过分离开发具有如下的优点:实现了不熟悉android界面开发人员编写基于android***的POS程序;把逻辑和界面分开方便快速高效的开发,缩短了开发的周期;逻辑和界面的分离精炼了代码,方便了后期的维护继续开发。所以,采用本发明的方法,可以实现智能POS的UI层和逻辑层的快速分离开发,而且易于后期维护。
附图说明
图1是本发明实施例提供的智能POS的UI层和逻辑层分离开发的方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供了一种智能POS的UI层和逻辑层分离开发的方法,包括如下步骤:
S1,完成对UI层和逻辑层的独立开发,同时完成对中间层的开发,并将中间层进行打包,形成jar包;
S2,UI层添加中间层的jar包,实现中间层页面部分的接口;逻辑层添加中间层的jar包,继承中间层的PayApp类,PayApp类包含初始化***、启动交易、设置参数、获取参数和/或停止交易的一些方法;
S3,UI层和逻辑层分别注册中间层的交易接口和页面接口,UI层和逻辑层通过中间层的交易接口和界面管理接口进行数据传输。
其中,UI层在基类BaseActivity中实现中间层定义的所有接口,以便于继承该基类的Activity组件进行调用,同时根据不同的交易类型定义不同的场景来展示对应的交易页面。
UI层通过中间层提供的注册方法来实现当前界面的绑定,当发起交易时调用Payment.startPay方法把交易的类型和交易的json数据传递给逻辑层,以及用于逻辑处理完毕后,调用中间层接口的com_payResult()方法获取处理的结果,并做对应的显示。
中间层的当前页面控制着和页面相关的部分,所述和页面相关的部分包括确认金额、确认***、手输***、错误提示和确认信息。
所述交易接口部分还定义了:保存参数和获取参数,UI层展示了Pos交易所需的参数,通过用户自定义设置后通过setParams方法传递到逻辑层,然后逻辑层进行写入文件保存操作;当用户进入到参数设置界面后,通过getParams方法获取相应的参数。
逻辑层定义子类去继承中间层的PayApp类,实现里面包含的初始化***、启动交易、设置参数、获取参数、停止交易的一些方法,逻辑层通过startPay方法传递过来交易类型和交易数据并对其进行逻辑处理,在处理过程中如果有确认金额或确认***的场景,通过中间层定义的相关方法进行弹窗提示,然后用户通过点击弹框上的按钮确认继续交易,待交易流程执行完毕后调用CB_payResult()方法,CB_payResult()方法包含如下的参数:交易id、错误码和交易结果信息,把交易结果传递给UI层中。
可见,本发明提供的上述方法中,分为三层进行开发:
其中UI层主要是用来展示的,为了方便使用在父类中实现包含交易结果,显示提示信息,停止显示信息,显示Toast信息,等待按键的接口IViewCB.在子类中注册中间层交易接口,绑定界面ViewCmd.registManageViewCB(),选择其中一支交易,调用Payment.startPay方法把交易的类型,和交易的json数据传递给逻辑层去做报文的上送和解析等逻辑,等到逻辑处理完毕,调用com_payResult()方法把处理的结果拿到,做对应的显示。
中间层分为页面部分(View)和交易部分,其中页面部分定义了View的回调接口包含显示交易结果,显示提示信信,Toast提示等,在ViewCB中具体的控制着和View相关的部分比如显示***,得到二维码扫描结果,停止二维码扫描等等。交易相关部分定义了支付类的接口,交易结果的回调接口,开始交易,停止交易,把交易结果传透出去,设置交易参数等等。
逻辑层中定义子类去继承中间层的PayApp类实现里面包含初始化***、启动交易、设置参数、获取参数、停止交易等方法。通过中间层拿到交易的类型,和传递过来的json格式的数据例如金额交易时间等去做逻辑处理(如果是交易参数的设置也是通过json格式数据去做处理设置对应的参数),在处理过程中通过中间层的ViewCB中的方法去实现显示提示信息获取UI层中输入的信息等等。交易处理完成后,调用CB_payResult()方法把交易结果传递给UI层中。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明提供的智能POS的UI层和逻辑层分离开发的方法,采取三层的分离结构,分为逻辑层、UI层和中间层,逻辑层负责处理各种交易和对应参数设置等功能,UI层则主要负责交易界面、交易结果、订单信息、参数设置界面的展示。UI层和逻辑层分别添加中间层的jar包,实现中间层的接口。通过中间层连接起来,这样就实现了逻辑和UI的分离,实现了分离开发。通过分离开发具有如下的优点:实现了不熟悉android界面开发人员编写基于android***的POS程序;把逻辑和界面分开方便快速高效的开发,缩短了开发的周期;逻辑和界面的分离精炼了代码,方便了后期的维护继续开发。所以,采用本发明的方法,可以实现智能POS的UI层和逻辑层的快速分离开发,而且易于后期维护。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (5)
1.一种智能POS的UI层和逻辑层分离开发的方法,其特征在于,包括如下步骤:
S1,完成对UI层和逻辑层的独立开发,同时完成对中间层的开发,并将中间层进行打包,形成jar包;
S2,UI层添加中间层的jar包,实现中间层页面部分的接口;逻辑层定义子类去继承中间层的PayApp类,实现里面包含的初始化***、启动交易、设置参数、获取参数、停止交易的一些方法,逻辑层通过startPay方法传递过来交易类型和交易数据并对其进行逻辑处理,在处理过程中如果有确认金额或确认***的场景,通过中间层定义的相关方法进行弹窗提示,然后用户通过点击弹框上的按钮确认继续交易,待交易流程执行完毕后调用CB_payResult()方法,CB_payResult()方法包含如下的参数:交易id、错误码和交易结果信息,把交易结果传递给UI层中;
S3,UI层和逻辑层分别注册中间层的交易接口和页面接口,UI层和逻辑层通过中间层的交易接口和界面管理接口进行数据传输。
2.根据权利要求1所述的智能POS的UI层和逻辑层分离开发的方法,其特征在于,UI层在基类BaseActivity中实现中间层定义的所有接口,以便于继承该基类的Activity组件进行调用,同时根据不同的交易类型定义不同的场景来展示对应的交易页面。
3.根据权利要求2所述的智能POS的UI层和逻辑层分离开发的方法,其特征在于,UI层通过中间层提供的注册方法来实现当前界面的绑定,当发起交易时调用Payment.startPay方法把交易的类型和交易的json数据传递给逻辑层,以及用于逻辑处理完毕后,调用中间层接口的com_payResult()方法获取处理的结果,并做对应的显示。
4.根据权利要求1所述的智能POS的UI层和逻辑层分离开发的方法,其特征在于,中间层的当前页面控制着和页面相关的部分,所述和页面相关的部分包括确认金额、确认***、手输***、错误提示和确认信息。
5.根据权利要求4所述的智能POS的UI层和逻辑层分离开发的方法,其特征在于,所述交易接口部分还定义了:保存参数和获取参数,UI层展示了Pos交易所需的参数,通过用户自定义设置后通过setParams方法传递到逻辑层,然后逻辑层进行写入文件保存操作;当用户进入到参数设置界面后,通过getParams方法获取相应的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811471945.6A CN109582312B (zh) | 2018-12-04 | 2018-12-04 | 一种智能pos的ui层和逻辑层分离开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811471945.6A CN109582312B (zh) | 2018-12-04 | 2018-12-04 | 一种智能pos的ui层和逻辑层分离开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582312A CN109582312A (zh) | 2019-04-05 |
CN109582312B true CN109582312B (zh) | 2021-09-21 |
Family
ID=65926583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811471945.6A Active CN109582312B (zh) | 2018-12-04 | 2018-12-04 | 一种智能pos的ui层和逻辑层分离开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582312B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000420B (zh) * | 2020-11-02 | 2021-01-15 | 武汉中科通达高新技术股份有限公司 | 一种数据处理方法和装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101482950A (zh) * | 2009-02-12 | 2009-07-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种网络支付的方法、终端及*** |
CN101872305A (zh) * | 2010-06-08 | 2010-10-27 | 用友软件股份有限公司 | Ui表现和业务逻辑分离方法和*** |
CN102467795A (zh) * | 2010-11-10 | 2012-05-23 | 国民技术股份有限公司 | 一种读卡装置及利用现有智能终端构成pos***和方法 |
CN102799631A (zh) * | 2012-06-26 | 2012-11-28 | 公安部第三研究所 | 基于rest实现网络电子身份标识业务过程管理控制的方法 |
CN103164792A (zh) * | 2011-12-14 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 无线终端上的支付服务提供方法及相关设备和*** |
CN105701406A (zh) * | 2015-12-31 | 2016-06-22 | 深圳市证通电子股份有限公司 | 安卓平台运行传统支付应用的方法 |
CN106095537A (zh) * | 2016-06-30 | 2016-11-09 | 福建联迪商用设备有限公司 | Android支付插件的管理方法及*** |
CN107491953A (zh) * | 2004-05-25 | 2017-12-19 | 沐溪支付技术股份公司 | 用于支持POS终端上Web应用的*** |
CN107632869A (zh) * | 2017-09-15 | 2018-01-26 | 百富计算机技术(深圳)有限公司 | 一种加载pos应用的用户界面的方法与设备 |
CN108628620A (zh) * | 2017-12-12 | 2018-10-09 | 百富计算机技术(深圳)有限公司 | Pos应用开发的实现方法、装置、计算机设备和存储介质 |
CN108762757A (zh) * | 2018-05-21 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 直播间平台业务快速开发框架及方法、服务器及介质 |
CN108897530A (zh) * | 2018-06-21 | 2018-11-27 | 北京慧达天下科技有限公司 | 一种基于组件模块的教育开发*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9955332B2 (en) * | 2009-01-28 | 2018-04-24 | Headwater Research Llc | Method for child wireless device activation to subscriber account of a master wireless device |
US10037194B2 (en) * | 2016-01-22 | 2018-07-31 | American Express Travel Related Services Company, Inc. | Systems and methods for visual data management |
-
2018
- 2018-12-04 CN CN201811471945.6A patent/CN109582312B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491953A (zh) * | 2004-05-25 | 2017-12-19 | 沐溪支付技术股份公司 | 用于支持POS终端上Web应用的*** |
CN101482950A (zh) * | 2009-02-12 | 2009-07-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种网络支付的方法、终端及*** |
CN101872305A (zh) * | 2010-06-08 | 2010-10-27 | 用友软件股份有限公司 | Ui表现和业务逻辑分离方法和*** |
CN102467795A (zh) * | 2010-11-10 | 2012-05-23 | 国民技术股份有限公司 | 一种读卡装置及利用现有智能终端构成pos***和方法 |
CN103164792A (zh) * | 2011-12-14 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 无线终端上的支付服务提供方法及相关设备和*** |
CN102799631A (zh) * | 2012-06-26 | 2012-11-28 | 公安部第三研究所 | 基于rest实现网络电子身份标识业务过程管理控制的方法 |
CN105701406A (zh) * | 2015-12-31 | 2016-06-22 | 深圳市证通电子股份有限公司 | 安卓平台运行传统支付应用的方法 |
CN106095537A (zh) * | 2016-06-30 | 2016-11-09 | 福建联迪商用设备有限公司 | Android支付插件的管理方法及*** |
CN107632869A (zh) * | 2017-09-15 | 2018-01-26 | 百富计算机技术(深圳)有限公司 | 一种加载pos应用的用户界面的方法与设备 |
CN108628620A (zh) * | 2017-12-12 | 2018-10-09 | 百富计算机技术(深圳)有限公司 | Pos应用开发的实现方法、装置、计算机设备和存储介质 |
CN108762757A (zh) * | 2018-05-21 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 直播间平台业务快速开发框架及方法、服务器及介质 |
CN108897530A (zh) * | 2018-06-21 | 2018-11-27 | 北京慧达天下科技有限公司 | 一种基于组件模块的教育开发*** |
Non-Patent Citations (2)
Title |
---|
POS UI design & development: what should be included & avoided;Forer;《https://stackoverflow.com/questions/1108799/pos-ui-design-development-what-should-be-included-avoided》;20090710;全文 * |
WEB应用中间层的分层架构设计总结;阿堂;《http://blog.sina.com.cn/s/blog_4c925dca0101jb4q.html》;20140402;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109582312A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101957793B (zh) | 一种面向Android及其衍生***的软件操作录制回放方法 | |
WO2017124976A1 (zh) | 一种应用资源获取方法及装置 | |
CN111198686A (zh) | 编程方法、装置、设备及计算机可读存储介质 | |
CN109471626A (zh) | 页面逻辑结构、页面生成方法、页面数据处理方法及装置 | |
CN103597464B (zh) | 将解释运行时应用适应到多个客户机的方法、***及装置 | |
CN109582312B (zh) | 一种智能pos的ui层和逻辑层分离开发方法 | |
CN106161833A (zh) | 操作屏幕提供***、中继设备和操作屏幕提供方法 | |
CN111352600A (zh) | 一种大屏控制***、方法、装置及电子设备 | |
US20220124192A1 (en) | Communication System Selection | |
CN104463493A (zh) | 一种金融社保ic卡现场发卡方法 | |
CN109784452A (zh) | 基于彩色二维码的卡证识别方法和装置 | |
CN107402762A (zh) | 指纹导航的实现方法及装置 | |
CN101917573B (zh) | Widget***的实现方法及采用该***的电视机 | |
CN109550232A (zh) | 触控设备及其响应方法、装置 | |
CN103067173B (zh) | 基于脚本的动态密钥网络签发和界面控制方法及*** | |
CN108376333A (zh) | 文件审批方法、介质、装置和计算设备 | |
CN107071142A (zh) | 一种基于移动终端的触摸屏失灵控制方法及*** | |
CN106842969A (zh) | 设备控制方法及装置 | |
CN109725621A (zh) | 一种基于1553b总线和can总线的二级总线程序在线烧写方法 | |
CN108668310A (zh) | 一种检测装置的控制方法、检测装置以及存储介质 | |
CN114253634A (zh) | 一种基于pisa的智能设备硬件交互*** | |
CN108984318B (zh) | 基于驱动模型的消息投递方法、装置及可读存储介质 | |
CN103984510B (zh) | 一种基于Android的打印机状态提示方法和装置 | |
CN103377074B (zh) | 一种在java环境中执行程序的方法及*** | |
CN205862465U (zh) | 多媒体信息查询装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |