# fadada-java-sdk-api3
**Repository Path**: fadada-tech/fadada-java-sdk-api3
## Basic Information
- **Project Name**: fadada-java-sdk-api3
- **Description**: 法大大SDK (Java版)
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 5
- **Created**: 2021-03-26
- **Last Updated**: 2024-08-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### **1、适用语言**
	JAVA
[jar包下载](https://gitee.com/fadada-tech/fadada-java-sdk-api3/releases)
### **2、SDK支持的环境**
	JAVA JDK 版本:  JDK 1.7-1.8
### 3、引用jar包
		引入sdk 所依赖的jar包,提供全流程的方法,提供的方法调用云端法大大api服务。
```xml
        
            org.apache.httpcomponents
            httpclient
            4.5.12
        
        
            org.apache.httpcomponents
            httpmime
            4.5.8
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.10.1
        
        
            org.slf4j
            slf4j-log4j12
            1.7.25
        
        
            commons-logging
            commons-logging
            1.2
        
```
### 4、始化客户端
		项目启动后必须先进行初始化,才能调用jar包方法。初始化仅需一次,之后可重复使用
		法大大分配的appid,appkey,本地客户端地址,请求超时等信息在初始化时作为入参传入。
```java
public String APPID = "xxxxx";//法大大分配的接入id
public String APPKEY = "xxxxx";//法大大分配的appid对应的key
public String SERVERURL = "";//指定环境请求url
// 默认正式环境初始化
DefaultFadadaApiClient client = new DefaultFadadaApiClient(APPID, APPKEY);
// 指定环境初始化
DefaultFadadaApiClient client = new DefaultFadadaApiClient(APPID, APPKEY, SERVERURL);
// 配置超时时间(默认是不设置超时时间)
FadadaApiConfig fadadaApiConfig = new FadadaApiConfig();
fadadaApiConfig.setReadTimeout(10000); // 读取数据超时时间  单位(ms)
fadadaApiConfig.setConnectTimeout(10000); // 连接超时时间  单位(ms)
DefaultFadadaApiClient client = new DefaultFadadaApiClient(APPID, APPKEY, SERVERURL, fadadaApiConfig);
// DefaultFadadaApiServiceImpl实现了接口FadadaApiService接口提供了json字符串转换以及http请求方法
// 如果要自定义实现json和http方法,只需要实现FadadaApiService接口方法
FadadaApiService fadadaApiService = new DefaultFadadaApiServiceImpl();
DefaultFadadaApiClient client = new DefaultFadadaApiClient(APPID, APPKEY, SERVERURL, fadadaApiConfig,
                fadadaApiService);
//                    ^
//                    |   
// (fadadaApiService替换成自定义实现的类的对象)
// 参数SERVERURL,fadadaApiService如果为空就采用默认的参数, fadadaApiConfig为空就默认不设置超时时间
```
### 5、业务方法调用
		基础父类DefaultFadadaClient可以构造生成对应业务模块的client,调用具体的业务方法。
- 	Oauth2Client 为oauth授权码服务	
-  AccountClient为账号服务 
- 	DocumentClient为文件服务
- 	SignTaskClient为签署服务
-  EmployeeClient为员工服务
-  SealClient为签章服务
-  TemplateClient为模板服务
除了Oauth2Client外,每个业务模块的方法调用时都需要传token参数。
下面以获取个人union地址的方法调用为例展示调用过程:
```java
//1、获取AccessToken(client为上一步初始化客户端得到DefaultFadadaApiClient对象)
//token有效期2小时,获取后可缓存起来不用每次重新调用
Oauth2Client oauth2Client = new Oauth2Client(client);
String token = oauth2Client.getToken().getData().getAccessToken();
//2、封装业务请求对象。
GetPersonUnionIdUrlReq req = new GetPersonUnionIdUrlReq();
req.setToken(token);
req.setClientId("xxxxx");
req.setRedirectUrl("xxxxx");
//3、构造业务accountClient,调用对应的业务方法
AccountClient accountClient = new AccountClient(client);
BaseRsp rsp = accountClient.getPersonUnionIdUrl(req);
```
更多示例详见demo代码。