所以,我可能不完全理解你被困在哪里,但无论如何我都会尝试一下......
假设我使用 DocuSign UI 创建一个模板并定义两个收件人角色:
-
Signer1(这将是注册您的服务的人)--Action=“签名”
-
复写1(一旦获得完整/签署的文件副本的人Signer1标志)——Action=“接收副本”
(注意:这些角色可以随意命名——我将它们命名为“Signer1”和“CarbonCopy1”,这样每个角色代表谁就很清楚了。)
假设上述场景,您的模板的收件人角色(在 DocuSign UI 中)将如下所示:
接下来,假设您在模板文档(即使用 DocuSign UI)中定义了一些字段(选项卡),Signer1收件人在签署文档时需要填写。对于这个例子,我们假设label这些文本选项卡之一的(名称)是field1。请注意,该字段已分配给Signer1接受者:
现在,如果我想通过使用此模板的 API 创建一个信封,并为一个或多个收件人预填充字段,那么关键是在 API 请求中使用“复合模板”结构。 (参见复合模板的部分这一页 https://docs.docusign.com/esign/restapi/Envelopes/Envelopes/create/了解详细信息。)在上述示例中,您的复合模板API 请求中的对象将包含一个服务器模板对象(指定模板ID and sequence=1), 和一个内联模板对象(指定sequence=2 和收件人信息,包括您想要预填充的任何选项卡(字段)的值。
在上面描述的示例中,创建信封的 JSON API 请求将如下所示(假设我们只是预填充单个字段Signer1-- 显然,您可以通过简单地将附加字段包含在tabs请求的对象以及field1):
POST https://{{env}}.docusign.net/restapi//v2/accounts/{{accountId}}/envelopes
{
"emailSubject": "Test Pre-fill Tabs",
"emailBlurb": "This is a test.",
"compositeTemplates": [{
"serverTemplates": [{
"sequence": "1",
"templateId": "CD0E6D53-3447-4A9E-BBAF-0EB2C78E8310"
}],
"inlineTemplates":[{
"sequence": "2",
"recipients": {
"signers": [
{
"roleName": "Signer1",
"recipientId": "1",
"name": "John Doe",
"email": "[email protected] /cdn-cgi/l/email-protection",
"clientUserId": "1234",
"tabs": {
"textTabs": [
{
"tabLabel": "field1",
"value": "TEST-123"
}
]
}
},
{
"roleName": "CarbonCopy1",
"recipientId": "2",
"name": "Jane Doe",
"email": "[email protected] /cdn-cgi/l/email-protection"
}
]
}
}]
}],
"status": "sent"
}
使用上述请求创建信封后,我执行“POST Recipient View”请求以获取第一个收件人的签名 URL (https://{{env}}.docusign.net/restapi//v2/accounts/{{accountId}}/envelopes/{{envelopeId/views/recipient
).
然后,当我随后使用该响应中返回的 URL 来启动签名会话时Signer1(约翰·多伊),我看到field1选项卡确实预先填充了我在“创建信封”API 请求中指定的值(TEST-123):
此外,一旦约翰·多伊(Signer1) 完成签名并提交完整的文件,Jane Doe (复写1)将发送一份副本。
我不熟悉 DocuSign Node SDK,但想象一下您可以弄清楚使用复合模板的语法,如上面的示例所示。希望这可以帮助!