过程细节比较多,官网写得也不太明白,上面只是写了大概步骤,不懂的可以私聊
注意:测试沙箱环境时合同模板,模板上设置的填写表单(也就是控件)只能用官方提供的接口创建
切换正式后,可直接使用官网上手动创建的模板,因为代码创建的模板控件位置不好计算;最好使用手动在平台上创建的,创建后点击设置进入,右侧可查看模板ID,再根据模板ID查询控件相关信息,填充控件内容即可发起签署
第一步:登录e签宝官网,注册,进入开发者控制条,添加应用,获取应用ID,应用secert
https://open.esign.cn/my-apps/home
第二步:下载java dome, 我选择的是(1、OAuth2.0鉴权方式)
第三步:将dome解压,直接放入项目使用,替换dome中这个文件下为你的应用id和secert
dome测试整个流程为类:OneStepStart ,从创建模板到到签署完成,在这里测试即可
第四步:这里主要是描述一下操作流程
使用沙箱测试,不能直接使用在官网上创建的模板,切换到正式环境后才能使用
测试时,只能根据接口创建模板
沙箱测试流程:创建模板,添加模板控件,赋值到控件上(控件的意思:文档上你自己需要填写内容的文本框称为控件),创建签署账号,一件发起签署,
签署成功异步通知回调,调用接口归档当前这一单(必须归档后才能查看你签署的文件)
public static void main(String[] args) {
try {
LOGGER.info("-------------1.--------获取token start------------------------------");
TokenHelper.getTokenData();
String filePath = "D:/files/aoduo_xy.pdf";
//创建模板 templateId -> 1e6b5e0118c049dfb54b8ff82746f678
LOGGER.info("-------------2.--------沙箱环境必须创建-创建模板------生产环境直接登录e签宝后台查询模板ID即可或通过接口获取------------------------");
/*JSONObject file = FileTemplateHelper.createTemplateByUpload(filePath, "aoduo_xy_3.pdf");
System.out.println("创建模板返回参数:"+file.toString());*/
LOGGER.info("--------------3.-------上传创建的模板------------------------------");
/*String uploadUrl=file.getString("uploadUrl");
FileTemplateHelper.streamUpload(filePath, uploadUrl);*/
LOGGER.info("---------------------模板上传状态查询------------------------------");
/*JSONObject template = FileTemplateHelper.getUploadFileStatus( file.getString("templateId"));
System.out.println("模板上传状态返回参数:"+template.toString());*/
LOGGER.info("---------------------查询模板详情------------------------------");
/*JSONObject jsonObject = FileTemplateHelper.qryComponents("1e6b5e0118c049dfb54b8ff82746f678");
System.out.println(jsonObject);*/
LOGGER.info("-------------4.--------添加模板控件------------------------------");
/*String templateId="1e6b5e0118c049dfb54b8ff82746f678";
List<String> res = FileTemplateHelper.addComponents(templateId);
System.out.println("添加模板控件返回信息:"+res.toString());*/
LOGGER.info("---------------------查询e签宝官网模板信息,获取模板ID------------------------------");
/*JSONObject jsonObject = FileTemplateHelper.qryFlowTemplates(1,10);
System.out.println(jsonObject);*/
LOGGER.info("---------------------根据模板ID填充模板控件内容------------------------------");
Map<String,String> simpleFormFields=new HashMap<>();
//控件ID
simpleFormFields.put("cc44677e2f21402c8aa818a95eb60ab4","江苏天***");
simpleFormFields.put("72123d1c7b3e47dfbc43a1f5b987dc24","江苏省连云港市海州****");
simpleFormFields.put("6e2bfe7b3f9e4e6fa02234c90744fe2e","浙江省******");
JSONObject jsonObject = FileTemplateHelper.createByTemplate("奥朵平台","1e6b5e0118c049dfb54b8ff82746f678",simpleFormFields);
System.out.println("根据模板ID填充模板控件内容: "+jsonObject);
LOGGER.info("---------------------创建个人账号start-------------------------------");
JSONObject personAcctJson = AccountHelper.createPersonAcct("15868164743", "何旭", null, "522425200010017893", "15868164743", null);
String acctId = personAcctJson.getString("accountId");
System.out.println("acctId: "+acctId);
LOGGER.info("---------------------一步发起签署start---------------------------------");
String fileId=jsonObject.getString("fileId");
String fileName = "奥朵云运动户外供应链平台商家入驻协议.pdf";
JSONObject flowJson = SignHelper.oneStepFlow(null, fileId, fileName, acctId);
String flowId = flowJson.getString("flowId");
LOGGER.info("---------------------签署流程开启 start-----------------------------");
SignHelper.startSignFlow(flowId);
// LOGGER.info("---------------------签署完成后,通知回调,平台方进行签署流程归档 start-----------------------------");
SignHelper.archiveSignFlow(flowId);
//
// LOGGER.info("---------------------归档后,获取文件下载地址 start-----------------------------");
// SignHelper.downloadFlowDoc(flowId);
}catch (Exception e){
e.printStackTrace();
}
}
线上流程:直接在官网上获取模板ID,根据接口查询模板控件信息(控件的意思:文档上你自己需要填写内容的文本框称为控件),填充控件内容,发起签署,回调通知处理你自己的业务逻辑,归档(必须归档后才能查看你签署的文件)
线上模板制作如下,创建好,点击左侧设置进入后可以查看模板ID
以下代码是直接使用e签宝的模版,具体设置的流程
public static void main(String[] args) {
try {
LOGGER.info("-------------1.--------获取token start------------------------------");
TokenHelper.getTokenData();
LOGGER.info("-------------2--------查询e签宝官网模板信息,获取模板ID------或直接登录平台:https://web.esign.cn/templates-manage/manage,查看文档获取:https://open.esign.cn/doc/opendoc/saas_api/gl4g37 ------------------------");
JSONObject jsonObject2 = FileTemplateHelper.qryFlowTemplates(1,10);
System.out.println(jsonObject2);
LOGGER.info("-------------3.-------根据模板ID,查询模板详情------------------------------");
JSONObject jsonObject3 = FileTemplateHelper.qryComponents("1e6b5e0118c049dfb54b8ff82746f678");
System.out.println(jsonObject3);
LOGGER.info("--------------4.-------根据模板ID填充模板控件内容------------------------------");
Map<String,String> simpleFormFields=new HashMap<>();
//控件ID
simpleFormFields.put("cc44677e2f21402c8aa818a95eb60ab4","江**");
simpleFormFields.put("72123d1c7b3e47dfbc43a1f5b987dc24","江苏省连云港市***");
simpleFormFields.put("6e2bfe7b3f9e4e6fa02234c90744fe2e","浙江省杭州市临平**");
JSONObject jsonObject = FileTemplateHelper.createByTemplate("奥朵平台","1e6b5e0118c049dfb54b8ff82746f678",simpleFormFields);
System.out.println("根据模板ID填充模板控件内容: "+jsonObject);
LOGGER.info("--------------5.-------创建个人账号start-------------------------------");
JSONObject personAcctJson = AccountHelper.createPersonAcct("15868164743", "何旭", null, "522425200010017893", "15868164743", null);
String acctId = personAcctJson.getString("accountId");
System.out.println("acctId: "+acctId);
LOGGER.info("----------------7.-----一步发起签署start---------------------------------");
String fileId=jsonObject.getString("fileId");
String fileName = "奥朵云运动户外供应链平台商家入驻协议.pdf";
JSONObject flowJson = SignHelper.oneStepFlow(null, fileId, fileName, acctId);
String flowId = flowJson.getString("flowId");
LOGGER.info("----------------8.-----签署流程开启 start-----------------------------");
SignHelper.startSignFlow(flowId);
LOGGER.info("----------------9.-----异步通知处理业务-----------------------------");
LOGGER.info("----------------10.-----通知成功后调用归档接口进行归档,才可下载签署文档-----------------------------");
}catch (Exception e){
e.printStackTrace();
}
}