接口描述
使用项目编号绑定的账户完成接入系统本地指定文档的多个签名域批量签署。
注:文件一旦签名盖章就不可以再进行任何填写或修改操作,否则在验证签署文件有效性时会显示文件被篡改,请在签章前完成所有内容填充。
文件涉及2个及以上签章时,请注意保留待签署文件/流和每次签署后的文件/流(含中间过程生成的文件/流),方便在签署过程中出现失败时如何选择基于哪份文件/流进行重签。
接口
UserSignService. multiPositionSafeSign3rd(String accountId, String sealData, SignPDFFileBean file, List<PosBean> signPos, SignType signType, String mobile, String code)
请求参数
展开全部参数参数名称 | 类型 | 必选 | 长度 | 参数说明 | 示例值 | |
accountId | String | 是 | 40 | 签署者账号标识,以此获取账户的证书进行签署 | ||
signType | SignType | 是 | 签章类型 (1)Single,单页签章 (2)Multi,多页签章 (3)Edges,签骑缝章 (4)Key,关键字签章 | |||
mobile | String | 是 | 20 | 接收短信验证码的手机 | ||
code | String | 是 | 10 | 短信验证码,必须通过e签宝接口发送 | ||
sealData | String | 否 | 印章图片Base64
| |||
![]() | SignPDFFileBean | 是 | 签署PDF文档信息 | |||
![]() | String | 否 | 255 | 待签署PDF文档本地路径,含文档名(与bytes至少有一个不为空) | ||
![]() | byte[] | 否 | 待签署PDF文档本地二进制数据(与srcPdfFile至少有一个不为空) | |||
![]() | String | 否 | 255 | 签署后PDF文档本地路径,含文档名(为空时返回签署后的文件流) | ||
![]() | String | 否 | 255 | 文档名称,e签宝签署日志对应的文档名,若为空则取文档路径中的名称 | ||
![]() | String | 否 | 100 | 文档编辑密码,当目标PDF设置权限保护时必填 | ||
![]() | Boolean | 否 | 是否增加e签宝logo图标 | |||
![]() | List<PosBean> | 是 | 签章位置信息 | |||
![]() | int | 否 | 定位类型,0-坐标定位,1-关键字定位,默认0,SignType为关键字签署的时候,为1,否则为0。用户可以不作处理。此处只是为了兼容旧版本而保留 | |||
![]() | String | 否 | 25 | 签署页码,若为多页签章,支持页码格式“1-3,5,8“,若为坐标定位时,不可空 | ||
![]() | float | 否 | 签署位置X坐标,若为关键字定位,相对于关键字的X坐标偏移量,默认0 | |||
![]() | float | 否 | 签署位置Y坐标,若为关键字定位,相对于关键字的Y坐标偏移量,默认0 | |||
![]() | String | 否 | 30 | 关键字,仅限关键字签章时有效,若为关键字定位时,不可空;关键字建议不要设置特殊字符,因Adobe无法识别部分符号,某些特殊字符会因解析失败从而导致搜索不到 | ||
![]() | float | 否 | 印章展现宽度,将以此宽度对印章图片做同比缩放。 1) 为空: 若图片宽度超过159,印章宽度等比缩小至159; 若图片宽度小于159,印章尺寸默认以图片大小为准; 2) 不为空 印章宽度以传入参数为准。 | |||
![]() | boolean | 否 | 是否是 二维码签署,默认为false。二维码签署不支持骑缝签和多页签 | |||
![]() | boolean | 否 | 是否是作废签签署,默认为false | |||
![]() | boolean | 否 | 是否显示本地签署时间,需要width设置92以上才可以看到时间 |
响应参数
展开全部参数参数名称 | 类型 | 必选 | 长度 | 参数说明 | 示例值 | |
![]() | FileDigestSignResult | 是 | ||||
![]() | int | 是 | 错误码,0标识成功,其他均标识失败 | |||
![]() | String | 否 | 100 | 错误信息,错误码对应的说明信息 | ||
![]() | boolean | 否 | 错误信息是否建议显示 | |||
![]() | byte[] | 否 | 完成签署的文档二进制数据 | |||
![]() | String | 否 | 40 | 签署记录id | ||
![]() | String | 否 | 签署文档源路径 | |||
![]() | String | 否 | 签署后目标路径 | |||
![]() | String | 否 | 客户自由标示位,用于辨识文件 |
请求示例
其他示例语言请点击
// 获取正式生成服务 // 获取客户端的代码:ServiceClient getKHD = ServiceClientManager.get("您的pojectId"); UserSignService userSignService = getKHD.userSignService(); /** * 平台用户PDF多指定位置摘要签署(文件流&指定手机短信验证) */ // 签署文档信息 SignPDFFileBean file = new SignPDFFileBean(); file.setSrcPdfFile("D:/test-template.pdf");// 待签署PDF文档本地路径,含文档名(与bytes至少有一个不为空) file.setDstPdfFile("D:/abc/b.pdf");// 签署后PDF文档本地路径,含文档名(为空时返回签署后的文件流) file.setFileName("b");// 文档名称,e签宝签署日志对应的文档名,若为空则取文档路径中的名称 file.setShowImage(true);// 是否增加e签宝logo图标 // 签章位置信息,可批量 List<PosBean> list = new ArrayList<>(); PosBean signPos = new PosBean(); signPos.setPosType(1);// 定位类型,0-坐标定位,1-关键字定位,默认0,SignType为关键字签署的时候,为1,否则为0。用户可以不作处理。此处只是为了兼容旧版本而保留 signPos.setPosPage("1-2");// 签署页码,若为多页签章,支持页码格式“1-3,5,8“,若为坐标定位时,不可空 signPos.setPosX(60L);// 签署位置X坐标,若为关键字定位,相对于关键字的X坐标偏移量,默认0 signPos.setPosY(0);// 签署位置Y坐标,若为关键字定位,相对于关键字的Y坐标偏移量,默认0 signPos.setKey("金某某");// 关键字,仅限关键字签章时有效,若为关键字定位时,不可空 // signPos.setCacellingSign(true);//是否是作废签签署,默认为false;如果签署作废章的话,建议线下也签署一份作废协议,这样法律效力较高 signPos.setAddSignTime(true);// 是否显示本地签署时间,需要width设置92以上才可以看到时间 list.add(signPos); String sealData = "AAANdmS2zgMBVDDrf//ZcxDMpO0N8kWAAAAAAYGYhgg/SSvEfW6pFB2CR6pGFGlNnkUelnz86/ijP4b2Ypur760s1LkPzvw0pL9PEH91Fk8PTnyf+pkYbl3H53ydUuMJl7JZPdXrJZ+nXDf9jyrqJS3f5x+8FP9iHyp5vUfovNj7W9it25n8dmX5ZmY4ebratbxlY+jlrW8iYK/5oDj/Okv4Z+/7BpZ9358uu5dfv0TJd5a+fLnOePYr+9LO3fWXLTCzGnPmXCcMfUUaN/X3fZseg8G8vufWsd8A5rPWiw6iRZgxbcfWCl8nDz7Zh6JB+9Gu6ieJdMj13Ace0qGXGkl9LP8+3yFPMH8dsdNYv/NcJPmeKv+92eNegPF4ss6dXXf5fxZ/964ycqvrrI4m28GPTHCx/dvX3lf7juW5GW9c6YfVHb78Tv5cWm6caqfqH3kmL2z/zx8Qfx083/txWiL2n46vSf3cVf93U2b3eyeKPh7c+hqaff/+Z548/ondJOaR5RcsIZkjfHyUZNY94Xg03c3vjOEv1F1+WjMHpP9ubLN2tYc/57JirH3GRYVuyu4vqetimT51+1ZPbHfE/7ifmurS9qevcv0vLsLJpqNQcVvvxxvng0OofWOTj0v+2zn/nuxV3AK7nT/8U9y9bar/xMauM9hDjmINTmH7buD9HLStiQPHn87/27eh1UEnUP3ecXQcgBpbZtav2oyXqx3vePs1ou7056Ipn7j4AmXdtvin/+22++Vfh2q4dhdPf9fQNuGJ1mZWv1E96u+Xubkc0HsdsOtLV8Xe+hrNWddFygO9WFrXfM7gO6A1GvNZVlH+sDOJidUBwZPw55tJD9uW/vUWXFNW1Y2NbHgpb/4ZPlLbZJyeZ2p3qv97f+w5gXtrrv630G+If+tBB+/n38RMNhU9WfHUWfn/x3/5PNG171+ezui9Y1X9CJvtWGGvpl7ftSR4yfFUlWfqJl+fDuI5+dZmi+N9po0X5jwi/+6MCDV+vyr7zzaPxWlu30xP/s/R37cbqOLYm//uDHFsvcuQ54o/VgcMHm7o+iyh6CTcezx5zS2h5gvgfxbz/7fANo76a/L/l/fTOXeXTjo03irKoUDZNoWs+AfDfzfvn49x4und5qvizqE42XsDYtiNrq4583driUed0kvjj+Wi8Jv7cuSe5c31xeZH+R/kvXV1Pw+2n0V/LzrfC/2jzzj7r3X4UK772eHOsI1dHRacZ929dUhYV4wdbkB8tIO8PS9nIZxma/p7uo+Cd9c/24LYEKl8w+xqWfu7vDFqbcmw8gKVfuVpGpF8wJS847ebuOcuj9DOyu8/Yt5iKl7qyezO2XS0pv5fUPvIp+brR2Kfk8tFp924WmRVXtr8aqz8vRQ0zuxvzposHHY8uLa1lPzr9DxvhhvTjz8yisikujeHXtKe3lpSfjApj09ZkVYfTf+ot/IRA7t6h3L/p0XXy6XgyOC/Hpf9uJfT9ItpRnc+x6X8bHuYR235E9Zc+ERDD0ohj0z/lq/7j0h/wA2DzxX+JYWHEoeH7teo4NH2/Vn1k+Kp/YEeHCgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY3z+dHFbPWssjxQAAAABJRU5ErkJggg=="; FileDigestSignResult fileDigestSignResult = userSignService.multiPositionSafeSign3rd( "账户id", sealData, file, list, SignType.Key, "指定的手机号", "用户接收到的验证码"); if (fileDigestSignResult.getErrCode() != 0) System.out.println("签署失败:" + JSONObject.fromObject(fileDigestSignResult)); else System.out.println("签署成功" + JSONObject.fromObject(fileDigestSignResult));
响应示例
{ "msg":"成功", "dstFilePath":"D:\abc\b.pdf", "markBit":"", "stream":[ ], "errCode":0, "filePath":"", "errShow":false, "signServiceId":"11995967269571xxxxx" }
错误码
错误码 | 错误描述 | 解决方案 |