Docusignapi 使用多个复合模板错误地应用服务器模板
我一直致力于将docusignrestapi集成到我公司的应用程序中。情况基本正常,但仍有一个问题。如果我上传多个(>=2)文档,每个文档都有一个关联的服务器模板,那么所有模板最终都会应用到第一个文档 例如,对Docusignapi 使用多个复合模板错误地应用服务器模板,docusignapi,docusigncompositetmplts,Docusignapi,Docusigncompositetmplts,我一直致力于将docusignrestapi集成到我公司的应用程序中。情况基本正常,但仍有一个问题。如果我上传多个(>=2)文档,每个文档都有一个关联的服务器模板,那么所有模板最终都会应用到第一个文档 例如,对/accounts/account\u id/envelopes的以下API调用应该上载两个文档:document1.pdf(7页)和document2.pdf(2页)document1.pdf的服务器模板在第7页上有一个sign here字段,document2.pdf的服务器模板在第2
/accounts/account\u id/envelopes
的以下API调用应该上载两个文档:document1.pdf
(7页)和document2.pdf
(2页)document1.pdf
的服务器模板在第7页上有一个sign here字段,document2.pdf
的服务器模板在第2页上有一个sign here字段
DocuSign网站上显示的是一个信封,信封上正确上载了两个文档,但document2.pdf
的签名字段出现在document1.pdf
的第2页。如果我手动删除并重新应用document2.pdf
上的模板,则该字段将正确放置。我怀疑这是由于我的sequence
属性存在一个微妙的问题,但我一直无法准确地找出错误所在
{
"allowReassign": false,
"emailBlurb": "email text",
"emailSubject": "subject",
"status": "created",
"compositeTemplates": [
{
"document": {
"name": "document1.pdf",
"documentId": "1"
},
"serverTemplates": [
{
"sequence": "1",
"templateId": "12345678-abcd-1234-abcd-1234567890ab"
}
],
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"name": "Test Primary",
"email": "test@example.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "RoleOne"
}
]
}
}
]
},
{
"document": {
"name": "document2.pdf",
"documentId": "2"
},
"serverTemplates": [
{
"sequence": "2",
"templateId": "abcdef12-1234-abcd-1234-abcdef123456"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Test Primary",
"email": "test@example.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "RoleOne"
}
]
}
}
]
}
]
}
关于顺序,请参见
序列号应表示当前复合模板范围内的对象序列。我增加了内联模板的seq#,效果很好。这就是说,这可能不是关于sig页面被不当附加的问题。不过,我还是从那里开始。希望这能有所帮助。我已经成功地重新描述了您描述的问题,并尝试通过使用各种组合的序列值来修复该问题,但都无济于事。对我来说,这似乎是一个bug。本例中的问题不是顺序。它是传递的文档的文档ID 创建服务器端模板时,将其视为documentId=1。在这种情况下,将使用两个服务器端模板,每个复合模板部分使用一个模板,每个模板的documentId=1。放置在这些模板文档上的选项卡与documentId=1相关联。 为中的每个复合模板传递的文档的documentId也应为documentId=1,以便当该文档覆盖时,ID匹配 该示例将传入的第二个文档设置为documentId=2。因此,当信封/模板信息折叠在一起时,选项卡保留documentId=1的关联,因此它们出现在第一个文档的第2页和第7页上,第二个模板覆盖documentId 2,因此它将没有任何选项卡 如果两个复合模板的传入文档都使用documentId=1,则选项卡将在每个复合模板中正确关联,然后documentId将与选项卡Id一起在最终信封中重新排序 序列号在第一个复合模板中可以是1,2,3,4或1,2,在第二个复合模板中可以是1,2 工作示例:
POST http://localhost/restapi/v2/accounts/2/envelopes
X-DocuSign-Authentication: [omitted]
Accept: application/json
Content-Type: multipart/form-data; boundary=70fcb373-f40d-40bb-bddb-204fe789087f
X-DocuSign-ClientTransactionId: T635316112162595227
--70fcb373-f40d-40bb-bddb-204fe789087f
Content-Type: application/json
Content-Disposition: form-data
{
"compositeTemplates": [
{
"compositeTemplateId": "1",
"serverTemplates": [
{
"sequence": "1",
"templateId": "99B09A06-95AF-47A5-964B-A58E78B981DF"
}
],
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"name": "Resty Tester",
"email": "resty.tester@gmail.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "RoleOne"
}
]
}
}
],
"document": {
"documentId": "1",
"name": "document1In.pdf"
}
},
{
"compositeTemplateId": "2",
"serverTemplates": [
{
"sequence": "2",
"templateId": "36FD0433-AAE0-43A7-B795-E06738159A59"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Resty Tester",
"email": "resty.tester@gmail.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "RoleOne"
}
]
}
}
],
"document": {
"documentId": "1",
"name": "document2In.pdf"
}
}
],
"status": "created",
"emailSubject": "Subject PostCompositeTemplate_PLAT_1647_20140328014654",
"emailBlurb": "Blurb PostCompositeTemplate_PLAT_1647_20140328014654",
"allowReassign": "false"
}
--70fcb373-f40d-40bb-bddb-204fe789087f
Content-Type: application/pdf
Content-Disposition: file; filename="document1In.pdf"; documentId=1; compositeTemplateId="1"
Content-Transfer-Encoding: base64
[bytes omitted]
--70fcb373-f40d-40bb-bddb-204fe789087f
Content-Type: application/pdf
Content-Disposition: file; filename="document2In.pdf"; documentId=1; compositeTemplateId="2"
Content-Transfer-Encoding: base64
[bytes omitted]
--70fcb373-f40d-40bb-bddb-204fe789087f--
201 Created
Pragma: no-cache
X-DocuSign-ClientTransactionId: T635316112162595227
Content-Length: 198
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Date: Fri, 28 Mar 2014 20:46:58 GMT
Expires: -1
{
"envelopeId": "5b28e38e-84c0-4af0-a3d0-e3c1e6cee17d",
"uri": "/envelopes/5b28e38e-84c0-4af0-a3d0-e3c1e6cee17d",
"statusDateTime": "2014-03-28T20:46:57.4300000Z",
"status": "created"
}
啊,我很害怕。我一直在四处寻找向DocuSign报告bug的地方,但我一直找不到他们的bug追踪器。你知道我在哪里能找到吗?谢谢。我不相信有一个面向公众的bug追踪器来跟踪DocuSign API问题。他们的人经常参加这个stackoverflow论坛,所以希望他们能看到这篇文章并做出相应的回应。到目前为止,我无法复制这个问题。我会尝试一些其他的东西,但我也想在这里确认一些东西。在JSON中,您为两个收件人设置了相同的
收件人ID
,路由顺序
,以及名称
,但是您为他们提供了不同的电子邮件地址。您的预期用例是什么?这应该是同一个收件人,还是两个不同的收件人?我很抱歉花了这么长时间。这些电子邮件本来应该是相同的,但我在构建JSON时一定输入错了。我编辑了JSON以反映这一点。至于用例,它的目的是上传两个定制文档,发送给一个用户,每个用户应用不同的服务器模板。