发起方式说明

[!NOTE]
君子签的发起,除hash保全的类型外。其它方式都会生成签署文件。可通过以下4种方式告知君子签合同的内容,以发起相应合同。

1、本地文件(PDF/ofd/word)发起

[!NOTE]
即商户在发起请求中传入文件。

1、选择PDF文件发起时,需要设置参数fileType=0,file传本地PDF文件。

2、选择word文件发起时,需要设置参数fileType=0且fileSuffix=2,file传本地word文件。

3、选择ofd文件发起时,需要设置参数fileType=0且fileSuffix=1,file传本地ofd文件;

a)如果需要对签署后ofd文件追加内容,需要设置参数addPage=1且noEbqSign=2;

b)如果不需要对签署后的ofd文件追加内容,则不需要设置addPage参数。

JAVA实现
 Map<String, Object>  params=bodyParams;
        String url=SERVICE_URL+"/v2/sign/applySign";
        params.put("contractName","合同名称"); //合同名称
        params.put("serverCa",1); //使用云证书
       // params.put("fileSuffix",1);//0或null默认.pdf; 1 ofd;2 word文件(传ofd和word文件发起合同时该参数必传)
        params.put("fileType",0); //指定合同发起方式(0上传PDF或者ofd文件;1 url地址下载;2 tmpl模版生成;3 html文件上传)
       params.put("file",new File("d:\\测试合同.pdf"));
      //  params.put("attachFiles",new File("d:\\附件.png"));
      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("500225198803074728");//身份证号
       sReq.setMobile("18623559271"); //手机号
       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);
PHP实现
//构建请求工具
$requestUtils=new RequestUtils($serviceUrl, $appkey, $appSecret);
//CURLFile 可以传url或filePath,但必须保证文件存在且有效,否则php不会报错,只会导致http请求返回null(并没有调到服务端)。
//初始化合同参数
$request=new ApplySignReq();
$request->contractName="合同名称";
$request->serverCa=1;//自动签
$request->file= new CURLFile('D:/tmp/test.pdf',null,"test1.pdf");
/**
$request->attachFiles= array(
    new CURLFile('D:/tmp/test.jpg',null,"test1.jpg"),
    new CURLFile('D:/tmp/test.png',null,"test1.png"));*///需保证文件存在
$sReq=new SignatoryReq();
$sReq->fullName="易XX";
$sReq->identityType=1;
$sReq->identityCard="50024XXXXXXXXXXXXXXXX";
$sReq->mobile="153XXXXXXXXXX";
$sReq->orderNum=1;
$sReq->chapteJson="[{\"page\":0,\"chaptes\":[{\"offsetX\":0.12,\"offsetY\":0.23}]},{\"page\":1,\"chaptes\":[{\"offsetX\":0.45,\"offsetY\":0.67}]}]";
$sReq->noNeedVerify=1;
$sReq->serverCaAuto=1;
$request->signatories=array($sReq);

//发起PING请求
$response=$requestUtils->doPost("/v2/sign/applySign",$request);

2、url地址发起

[!NOTE]
发起请求中传入url地址

1、需要设置参数fileType=1,且url传入PDF文件地址(url地址需要在公网上能访问)。

JAVA实现
ApplySignReq applySignReq=new ApplySignReq();
applySignReq.setContractName("合同名称");
applySignReq.setServerCa(1);
applySignReq.setFileType(1);
applySignReq.setUrl("http://xxxx.xxxx.xxx/xxx.pdf");
......
//后面可再添加其它签约方
RequestUtils requestUtils=RequestUtils.init(SERVICE_URL,APP_KEY,APP_SECRET);//建议生成为spring bean
ResultInfo<String> ri= requestUtils.doPost("/v2/sign/applySign",applySignReq);
PHP实现
//构建请求工具
$requestUtils=new RequestUtils($serviceUrl, $appkey, $appSecret);
//CURLFile 可以传url或filePath,但必须保证文件存在且有效,否则php不会报错,只会导致http请求返回null(并没有调到服务端)。
//初始化合同参数
$request=new ApplySignReq();
$request->contractName="合同名称";
$request->serverCa=1;//自动签
$request->fileType = 1;
$request->url="http://s.sandbox.junziqian.com/";
....
//发起PING请求
$response=$requestUtils->doPost("/v2/sign/applySign",$request);

3、模版发起

[!NOTE]
注意需要登录企业账号后台(https://web.junziqian.com/login)配置API模板(首页模板管理------->添加API模板)。

1、参数fileType=2, templateNo=“创建的合同模板ID”,templateParams为模板参数JSON字符串;

2、API模板目前只支持赋值和for循环操作:

JAVA实现
ApplySignReq applySignReq=new ApplySignReq();
applySignReq.setContractName("合同名称");
applySignReq.setServerCa(1);
//合同文件
applySignReq.setFileType(2);
applySignReq.setTemplateNo("T001");
//applySignReq.setTemplateParams(null);//可以传json_string:{xx:xxx}
......
//后面可再添加其它签约方
RequestUtils requestUtils=RequestUtils.init(SERVICE_URL,APP_KEY,APP_SECRET);//建议生成为spring bean
ResultInfo<String> ri= requestUtils.doPost("/v2/sign/applySign",applySignReq);
PHP实现
//构建请求工具
$requestUtils=new RequestUtils($serviceUrl, $appkey, $appSecret);
//CURLFile 可以传url或filePath,但必须保证文件存在且有效,否则php不会报错,只会导致http请求返回null(并没有调到服务端)。
//初始化合同参数
$request=new ApplySignReq();
$request->contractName="合同名称";
$request->serverCa=1;//自动签

$request->fileType = 2;
$request->templateNo="T001";//模版编号
$request->templateParams="{}"; //模版变量,可以传array或json_string
....
//发起PING请求
$response=$requestUtils->doPost("/v2/sign/applySign",$request);

4、html单文件发起

[!NOTE]
注意需要输入相应的fileType和htmlContent;

1、需要设置参数fileType=3,htmlContent传HMTL文件,需要utf8编码。

JAVA实现
ApplySignReq applySignReq=new ApplySignReq();
applySignReq.setContractName("合同名称");
applySignReq.setServerCa(1);
//合同文件
//合同文件
applySignReq.setFileType(3);
applySignReq.setHtmlContent("<meta charset=\"utf-8\">html文件信息001<br/><br/><br/><br/><br/><br/><br/><br/><input type=\"text\" name=\"ebq\" style=\"width:0;height:0;border:0;margin:0;padding:0;position: relative;\"><br/><br/><br/><br/><br/><br/><br/><br/><input type=\"text\" name=\"ebq\" style=\"width:0;height:0;border:0;margin:0;padding:0;position: relative;\">");
......
//后面可再添加其它签约方
RequestUtils requestUtils=RequestUtils.init(SERVICE_URL,APP_KEY,APP_SECRET);//建议生成为spring bean
ResultInfo<String> ri= requestUtils.doPost("/v2/sign/applySign",applySignReq);
PHP实现
//构建请求工具
$requestUtils=new RequestUtils($serviceUrl, $appkey, $appSecret);
//CURLFile 可以传url或filePath,但必须保证文件存在且有效,否则php不会报错,只会导致http请求返回null(并没有调到服务端)。
//初始化合同参数
$request=new ApplySignReq();
$request->contractName="合同名称";
$request->serverCa=1;//自动签

$request->fileType=3;
$request->positionType=1;//指定公章位置类型:0或null使用签字座标位置或不指定签字位置;1表单域定位(表单域如果上传为pdf时,需pdf自行定义好表单域,html及url及tmpl等需定义好input标签);2关键字定义
$request->htmlContent = "<meta charset=\"utf-8\">html文件信息001<br/><br/><br/><br/><br/><br/><br/><br/><input type=\"text\" name=\"ebq\" style=\"width:0;height:0;border:0;margin:0;padding:0;position: relative;\">".
"<br/><br/><br/><br/><br/><br/><br/><br/><input type=\"text\" name=\"ebq\" style=\"width:0;height:0;border:0;margin:0;padding:0;position: relative;\">";
....
//发起PING请求
$response=$requestUtils->doPost("/v2/sign/applySign",$request);

results matching ""

    No results matching ""