准备工作

SDK、客户端私钥、appID、服务器公钥

客户端私钥准备

你将生成一组RSA私钥/公钥,后续的文档中使用【客户端App私钥】+【客户端App公钥】作为称呼,客户端App公钥需要上传到DABank服务器,你的所有请求都将使用这个客户端App私钥签名,DABank服务器使用你的客户端App公钥对签名进行验证,确保请求没有被篡改或者伪造。

额外说明的是,openssl生成的私钥默认使用pkcs1格式,为了减少sdk解析私钥的依赖,你需要将私钥转换为PKCS8格式后使用,使用下述的代码生成私钥+公钥:

#生成私钥(PKCS1格式)
openssl genrsa -out app_private_key.pem 2048
#生成公钥,公钥需要上传到DABank服务器
openssl rsa -in app_private_key.pem -pubout -out app_public_key.pem

#将私钥转换为PKCS8格式,这个是你的SDK实际使用的内容
openssl pkcs8 -topk8 -inform PEM -outform PEM -in app_private_key.pem -out priv8.pem -nocrypt

AppID与服务器公钥

你的app有一个appId,所有的请求中都需要携带这个appId,对应字段key

DABank服务器为每个app 生成了一组RSA私钥+公钥,后续的文档中使用【服务器端App私钥】【服务器端App公钥】作为称呼你需要下载这个服务器端App公钥。在必要的时机,DABank向你的服务器发起回调请求,DABank使用服务器端App私钥对回调请求进行签名,你需要使用下载的服务器端App公钥对请求进行验证,确保请求没有被篡改或者伪造。

Java SDK

你可以从open平台登录后下载Java SDK jar文件,目前暂时没有提供maven依赖,如果你使用了maven或其他依赖管理工具,建议的做法是将jar文件放到工程目录中并上传到版本管理工具,使用脚本安装到本地依赖仓库。

由于SDK使用了Base64和lamda特性,使用SDK需要至少JDK 8,出于一些考虑,你无法获得SDK的源代码,如果你需要在JDK 6/7环境下使用,我建议你反编译我们的sdk后参考改动。

为了实现0依赖和尽可能小的体积,SDK没有直接包含或依赖JSON库和http库,我们定义了JsonProvider(json parser/serializer)和HttpProvider接口, 你至少需要提供一个JsonProvider 实现才可以使用。如果没有提供http实现,SDK默认使用HttpURLConnection 发起http请求,我们建议你提供一个自己的实现,以方便更细粒度的控制http请求,比如连接池、超时、日志等。

下面是JsonProvider的定义:

需要说明,字段需要处理为snake_case (lower_case_underscore), 下面的代码列举了gson和jackson的实现:

下面是HttpProvider的定义:

Java SDK api 学习建议

  • https://doc.dabank.io 了解http接口,SDK实现了这些接口

  • 从DabankClient 入手,了解每一个函数,及其对应参数

  • 参考下载的javadoc, 了解每个函数的注释

  • 额外的了解Rsa类的几个方法(签名与验证)

Last updated

Was this helpful?