PayPlugin的Payso层架构思路
来源:互联网 发布:南风知我意琰阙百度云 编辑:程序博客网 时间:2024/06/07 18:29
PayPlugin顾名思义,是支付插件。支付的东西意味着安全性要得到保证。
大家都知道,Android开发用到的是java语言编写,用java编写,就意味着会被破解,会被反编译。
所以,交易相关的核心代码,我们通常都不希望写在java层,而java层更多的是用来渲染界面。
那么我们把核心代码写在C层,也就是通过jni去调用。但是,交易支付涉及到的业务是非常多的,举个例子,我们要查询银行卡的金额。
我们的步骤是,先刷卡,或者先触卡,或者卡号之后,我们还需要去输入密码,之后,就是银联的8583协议。最后金额查到返回回来。
这当中涉及到的接口十分多。于是乎,我们在jni的native那边写了比较多的方法,比如刷卡,比如输入密码这些步骤。
我们想尽量减少接口,把接口做成通用化,用指令去代替。于是,我设计了这套架构。
下面让我解释一下,上面的架构大体上的意思。
1.PaySys
paySysCmd(ISysCallBack callback)
setSysParams(int tag, String value)
readSysParams(int tag)
这个类是起始触发类,是java连通native的关键类。其中,最主要的方法是PaySysCmd这个方法。另外两个setSysParams和readSysParams方法是保存和读取缓存的方法。
2.ISysCallback
ISysCallback这个接口是供native层调用的接口,它有很多实现类。
BaseSysCallBackImpl是交易基类,交易过程中,显示对话框,提示框,还有包括C控制java层界面的方法controlUI()。其中controlUI上的步骤可以用IStep接口实现类去做。
4.IStep
有了交易基类还不够,如果想要走支付交易流程,就必须把步骤串联起来,比如查询余额,就有刷卡,输入密码等步骤。所以现实IStep的类都是业务上的步骤类。
优点:
1.减少jni的接口,把接口归纳归类,通用化。
2.核心支付逻辑放入到C层,防止被破解,java层仅做界面的展示和触发。
缺点:
每新增一个业务,C层和java层都必须约定好指令,所以代码都必须要修改。
可优化的地方:
可以通过动态下载更新
阅读全文
0 0
- PayPlugin的Payso层架构思路
- SOA的架构思路
- 信息架构的设计思路
- 信息架构的设计思路 .
- 信息架构的设计思路 .
- 信息架构的设计思路
- 信息架构的设计思路
- 信息架构的设计思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 分布式系统的架构思路
- 锁在应用层的优化思路
- 1333 地鼠的困境
- 分布式环境下用redis模拟session
- RP8.1.0.3366企业版授权
- android进阶之了解Android系统与开机过程
- 【Chrome插件】使用FE助手-百度WEB前端助手
- PayPlugin的Payso层架构思路
- JavaScript类型转换
- WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-
- Spring核心一(基本概念)
- React Native的征程
- linux 配置ssh无密码登录不起作用的解决方案
- 楼天城(百度百科)
- webstorm上使用GIt工具
- 29. My Calendar I