java使用e签宝实现合同文件签名盖章

过程细节比较多,官网写得也不太明白,上面只是写了大概步骤,不懂的可以私聊

注意:测试沙箱环境时合同模板,模板上设置的填写表单(也就是控件)只能用官方提供的接口创建

         切换正式后,可直接使用官网上手动创建的模板,因为代码创建的模板控件位置不好计算;最好使用手动在平台上创建的,创建后点击设置进入,右侧可查看模板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();
        }
    }

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hexu_blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值