html源码发起

[!NOTE]
通过html源码发起合同签署,可以发起: 半自动签署,手动签署(用户有感知),保全存证,hash保全,批量签署合同等多种合同类型。

1、html源码发起签署,需要utf-8编码。

2、接口对签署人为个人时,不会校验姓名+身份证号+手机号的真实性,需要开发者确保真实性;君子签可单独提供个人身份证二要素、运营商三要素等的校验接口,需要联系商务充值后才能使用。

3、接口中签署人信息(证件号)不能重复,同一个签署人可以设置多个签字位置,可以针对不同签署人分别设置验证方式(人脸,银行卡,短信验证码等)、签署方式等。

4、该调用接口成功后返回APL开头的合同编号,开发者需要保存该合同编号,以便后续接口调用。

5、签字位置设置说明:接口支持关键字定位,坐标(X,Y)定位,表单域定位,详细说明可参考“签字位置指定”说明

http请求方式

[!NOTE]
POST multipart/form-data

http请求地址

[!NOTE]
$SERVICE_URL/v2/sign/applySign #其中$SERVICE_URL为生产或测试的地址

http请求参数

参数 类型 是否必填 默认值 说明
htmlContent string * 合同html源码,fileType=3,时必须传入,utf8编码
fileType int * 0 3 html源码上传
其他参数说明参考“签约发起-文件类API”

http返回参数

[!NOTE]
返回response为application/json的数据,其字段说明如下

参数 类型 是否必返回 说明
success bool * 成功true;异常false
msg string ? 异常时,返回异常原因
resultCode string ? 异常时返回
data string ? 合同编号信息(APLXXXXX)

[!NOTE]
返回结果,参考:

//{"msg":"app_secret不可用","resultCode":"HTTP_PARAM_ERROR","success":false}
//{"success":true,data:"APLXXXXXXXXXX"}
JAVA实现
 Map<String, Object>  params=bodyParams;
        String url=SERVICE_URL+"/v2/sign/applySign";
        params.put("contractName","合同名称"); //合同名称
        params.put("serverCa",1); //使用云证书
        params.put("fileType",3);
        params.put("htmlContent","<meta charset=\"utf-8\">html文件信测试场侧hi是测测测测测\" +\n" +
                "                \"<input type=\"text\" name=\"ebq\" style=\"width:0;height:0;border:0;margin:0;padding:0;\">\"+\n" +
                "                \"<br/><br/><br/><br/><br/><br/><br/><br/><input type=\"text\" name=\"ebq\" style=\"width:0;height:0;border:0;margin:0;padding:0;\">");        params.put("dealType",5); //指定合同文件签署方式(5为部分自动签,0手动签,1自动签,2只报全,6 HASH只保全,17收集信息批量签)
        params.put("positionType",0); //指定签字位置类型(0签字坐标,1表单域,2关键字)
       // params.put("addPage",1);//ofd文件追加内容,noEbqSign需要设置为2
       //  params.put("noEbqSign",2);//不要保全章

      /**
       * 签约方1(个人)
       */
      JSONArray signatories=new JSONArray();
       SignatoryReq sReq=new SignatoryReq();
       signatories.add(sReq);
       sReq.setFullName("测试"); //姓名
       sReq.setIdentityType(1); //证件类型
       sReq.setIdentityCard("500225xxxx");//身份证号
       sReq.setMobile("186235xxx"); //手机号
       sReq.setChapteJson("[{\"page\":0,\"chaptes\":[{\"offsetX\":0.3047,\"offsetY\":0.2677}]},{\"page\":4,\"chaptes\":[{\"offsetX\":0.2378,\"offsetY\":0.1681}]}]");//坐标(X Y)定位签字位置
       // sReq.setSearchKey("服务组件");//关键字定位签字位置
      sReq.setNoNeedVerify(1); //取消签约前短信校验
      sReq.setServerCaAuto(0);//是否使用自动签署完成,0或null不使用,1自动(当且只当合同处理方式为部份自动或收集批量签时有效)
      sReq.setSignLevel(1);//签字类型,标准图形章或公章:0标准图形章,1公章或手写,2公章手写或手写,3个人方形标准章(用户类型是个人且姓名2-4个字符生效,其他情况默认使用系统标准图形章)

        /**
         * 签约方2(企业)
         */
       sReq=new SignatoryReq();
        signatories.add(sReq);
        sReq.setFullName("重庆小熊文化有限公司"); //企业姓名
        sReq.setIdentityType(11); //证件类型
        sReq.setIdentityCard("9999999XXXXX9");//营业执照号
        sReq.setEmail("1XXXX@111.com"); //在君子签注册认证的邮箱
        sReq.setChapteJson("[{\"page\":4,\"chaptes\":[{\"offsetX\":0.121,\"offsetY\":0.3941}]}]");//坐标(X Y)定位签字位置
       // sReq.setSearchKey("服务组件");//关键字定位签字位置
        sReq.setSignLevel(0);
        sReq.setNoNeedVerify(1);
      sReq.setServerCaAuto(1);//当前签约方自动签署

        params.put("signatories",signatories.toJSONString());
        System.out.println(signatories.toJSONString());
      /*  params.put(new String("attachFiles"),new File("/per.png"));//这里必须用new String,因为使用的是IdentityHashMap(为了多个file的同name上传)
        params.put(new String("attachFiles"),new File("/ent.png"));*/
        //params.put("attachFiles",new File("/per.png"));
        //params.put("attachFiles",new File("/ent.png"));
        String str= HttpClientUtils.init().getPost(url,null,params,true);
        System.out.println(str);

results matching ""

    No results matching ""