接口描述
使用指定账户及印章完成含预置空白签名域的模板文件的填充及签署,签署过程需要校验用户短信验证码,验证码必须通过e签宝接口发送。
注:文件一旦签名盖章就不可以再进行任何填写或修改操作,否则在验证签署文件有效性时会显示文件被篡改,请在签章前完成所有内容填充。
文件涉及2个及以上签章时,请注意保留待签署文件/流和每次签署后的文件/流(含中间过程生成的文件/流),方便在签署过程中出现失败时如何选择基于哪份文件/流进行重签。
接口
TemplateSignService.timesSignCode(SignPDFFileBean fileBean, Map<String, Object> fields, List<String> signatureNames, SignatureSettings settings, String code);
请求参数
展开全部参数参数名称 | 类型 | 必选 | 长度 | 参数说明 | 示例值 | |
signatureNames | List | 是 | 签署所使用的预置空白签名域的名称 | |||
txtFields | Map | 是 | 模板中包含待填充文本域时,文本域Key-Value组合 | |||
code | String | 是 | 短信验证码 | |||
settings | SignatureSettings | 是 | 预置签名域签署所使用的账号、印章等信息 | |||
![]() | String | 是 | 签署账户唯一标识,由账号创建接口返回 | |||
![]() | String | 是 | 签署时印章图片字节流Base64编码值,可由第3章节模板印章生成接口进行创建。
| |||
![]() | SignPDFFileBean | 是 | 指定接口输入输出目标文件的对象封装 | |||
![]() | String | 否 | 255 | 待签署PDF文档本地路径,含文档名(与bytes至少有一个不为空) | ||
![]() | byte[] | 否 | 待签署PDF文档本地二进制数据(与srcPdfFile至少有一个不为空) | |||
![]() | String | 否 | 255 | 签署后PDF文档本地路径,含文档名(为空时返回签署后的文件流) | ||
![]() | String | 否 | 255 | 文档名称,e签宝签署日志对应的文档名,若为空则取文档路径中的名称 | ||
![]() | String | 否 | 100 | 文档编辑密码,当目标PDF设置权限保护时必填 | ||
![]() | Boolean | 否 | 是否增加e签宝logo图标 | |||
![]() | String | 否 | 100 | 客户自由标示位,用于辨识文件 |
响应参数
展开全部参数参数名称 | 类型 | 必选 | 长度 | 参数说明 | 示例值 | |
![]() | FileDigestTimesSignResult | 是 | ||||
![]() | int | 是 | 错误码,0标识成功,其他均标识失败 | |||
![]() | String | 否 | 100 | 错误信息,错误码对应的说明信息 | ||
![]() | boolean | 否 | 错误信息是否建议显示 | |||
![]() | byte[] | 否 | 完成签署的文档二进制数据 | |||
![]() | Map | 否 | 签署完成后返回的签署服务Id值,Map Key为签署接口指定的acountId,Value为该用户签署的所有signServiceId的列表信息 | |||
![]() | String | 否 | 签署文档源路径 | |||
![]() | String | 否 | 签署后目标路径 |
请求示例
其他示例语言请点击
// 获取客户端的代码:ServiceClient getKHD = ServiceClientManager.get("您的pojectId"); TemplateSignService templateSignService = getKHD.templateSignService(); // 签署文档信息 SignPDFFileBean file = new SignPDFFileBean(); file.setSrcPdfFile("D:/test-template.pdf");// 待签署PDF文档本地路径,含文档名(与bytes至少有一个不为空) file.setDstPdfFile("D:/abc/a.pdf");// 签署后PDF文档本地路径,含文档名(为空时返回签署后的文件流) file.setFileName("a");// 文档名称,e签宝签署日志对应的文档名,若为空则取文档路径中的名称 file.setShowImage(true);// 是否增加e签宝logo图标 SignatureSettings signatureSettings = new SignatureSettings(); signatureSettings.setAccountId("XXXXXXX2ACADEBDCD3D126B858"); String sealData =""; signatureSettings.setSealData(sealData); List<String> signatureNames = new ArrayList<>(); signatureNames.add("Signature1"); Map<String, Object> map = new HashMap<>();// 模板中包含待填充文本域时,文本域Key-Value组合 map.put("Text1", "芜浣"); FileDigestTimesSignResult fileDigestTimesSignResult = templateSignService.timesSignCode(file, map, signatureNames, signatureSettings, "076651"); if (fileDigestTimesSignResult.getErrCode() != 0) System.out.println("失败" + JSONObject.fromObject(fileDigestTimesSignResult)); else System.out.println("成功" + JSONObject.fromObject(fileDigestTimesSignResult));// 获取正式生成服务
响应示例
{ "msg":"成功", "dstFilePath":"D:\abc\a.pdf", "signResult":{ "XXXXX2ACADEBDCD3D126B858":[ "XXXX662444670977" ] }, "stream":[ ], "errCode":0, "filePath":"", "errShow":false }
错误码
错误码 | 错误描述 | 解决方案 |
800015 | 模板文档中未找到预置签名域:xxx |