为期三个月左右的 Android 支付 SDK工作接近尾声了,记录下工作上点滴.这个 SDK是上司让写一套共用 SDK,以后其他公司如果要做支付这块代理的话,SDK可以直接拿, 有套SDK对应的文档,很快解决这部分问题.也不用改什么,参数都封装好了.因为对应银行的参数都是差不多的.
如何开发一套不会被人喷的 SDK呢,从没写过这种SDK.我也害怕,怕写出来的人家会说:这傻 *写的什么几把玩意.这特么这菜逼写的渣渣 SDK.后面还有一堆,留给你们想象的空间.
先来说说吧,这套 SDK采用native封装,支持 Android 原生代码模块,也支持web APP.不要问我native是什么,百度一下,比我说得更详细.
这个模块所有暴露给开发者调用的方法写在:
public interface ******Controller{
public void init( Context context, String driverName,DeviceConnParams params, DeviceEventListener<ConnectionCloseEvent> listener);
}
具体实现写在:
public class DeviceControllerImpl implements DeviceController {
private static DeviceManager deviceManager = ConnUtils.getDeviceManager();
private DeviceConnParams connParams;
private String driverName;
public void init(Context context, String driverName,
DeviceConnParams params,
DeviceEventListener<ConnectionCloseEvent> listener) {
deviceManager.init(context, driverName, params, listener);
this.connParams = params;
this.driverName = driverName;
}
}
无非是说明.写 SDK你要知道什么该暴露出来什么该隐藏掉.不要用明文,全部用自定义乱七八糟的加密手段,或者采用 c++编写核心代码.jni 调用也行.SDK传参不要写固定类型,要多用<泛型>.
这个初始化,暴露给开发者的是一些没有涉及核心模块的功能.前几天来一家公司,头让我去他们讲解这个支付 SDK,我却只花10分钟不到.因为当你把 SDK写很明白有详细 API文档的时候,有问题看文档.或者 Q我.SDK初体验,感觉很良好.这个SDK是需要XX硬件支持,估计也没多少人会用得到.就这样吧.