DocuSign - 通过 API 在创建的信封上更改模板定义的收件人
DocuSign - changing the template-defined recipient on the created envelope via the API
有一个包含 5 个收件人和一个签名顺序的模板。模板中的一位收件人的角色是科学家,签名顺序为 4。所有收件人的姓名和电子邮件均由模板提供。对于科学家角色的收件人,“Albert Einstein”是姓名,“albert@mc2.com”是电子邮件。
为了创建和发送信封,客户端应用程序使用以下 JSON 负载对 ${base_path}/v2.1/accounts/${account_id}/envelopes
进行 API 调用:
{
"status": "sent",
"templateId": "...",
"templateRoles": [
{
"email": "...",
"name": "...",
"roleName": "...."
},
{
"email": "newton@fma.com",
"name": "Isaac Newton",
"roleName": "Scientist"
}
]
}
预期:覆盖 - 来自 API 调用的科学家的 name/email 替换了创建信封上的模板定义的 name/email
观察到:合并 - 来自 API 呼叫的科学家作为新收件人添加到信封中,其签名顺序设置为 1。模板提供的科学家没有改变。
观察到的行为是故意的吗?
这是设计使然。
让我解释一下为什么。
模板中有两种类型的收件人:
- 占位符
- 固定
这是 either/or 的情况。您可以在模板中指定收件人,也可以将其保留为稍后指定的占位符。
你想要哪一个?
如果您希望修复它,但稍后又想覆盖,则需要另一个 API 调用。您需要更改收件人,实质上是设置一组新的收件人。您想删除阿尔伯特爱因斯坦并添加其他人(尽管您的代码似乎有相同的科学家,所以没有意义)。
尽管如此,我还是建议您考虑将复合模板模型用于这些类型的高级场景。
有一个包含 5 个收件人和一个签名顺序的模板。模板中的一位收件人的角色是科学家,签名顺序为 4。所有收件人的姓名和电子邮件均由模板提供。对于科学家角色的收件人,“Albert Einstein”是姓名,“albert@mc2.com”是电子邮件。
为了创建和发送信封,客户端应用程序使用以下 JSON 负载对 ${base_path}/v2.1/accounts/${account_id}/envelopes
进行 API 调用:
{
"status": "sent",
"templateId": "...",
"templateRoles": [
{
"email": "...",
"name": "...",
"roleName": "...."
},
{
"email": "newton@fma.com",
"name": "Isaac Newton",
"roleName": "Scientist"
}
]
}
预期:覆盖 - 来自 API 调用的科学家的 name/email 替换了创建信封上的模板定义的 name/email
观察到:合并 - 来自 API 呼叫的科学家作为新收件人添加到信封中,其签名顺序设置为 1。模板提供的科学家没有改变。
观察到的行为是故意的吗?
这是设计使然。 让我解释一下为什么。 模板中有两种类型的收件人:
- 占位符
- 固定
这是 either/or 的情况。您可以在模板中指定收件人,也可以将其保留为稍后指定的占位符。 你想要哪一个?
如果您希望修复它,但稍后又想覆盖,则需要另一个 API 调用。您需要更改收件人,实质上是设置一组新的收件人。您想删除阿尔伯特爱因斯坦并添加其他人(尽管您的代码似乎有相同的科学家,所以没有意义)。
尽管如此,我还是建议您考虑将复合模板模型用于这些类型的高级场景。