0

我已经尝试了几乎所有我能想到的但无法让它发挥作用的东西。

我正在尝试在我的代码中设置访问代码并使用 RequestSignatureFromTemplate 调用将其发送到 templateRole。现在,我所有的配置信息都在 XML 中。我并不反对使用 JSON,但并非我的所有开发人员都知道 JSON。

这是我的 XML 的片段。

<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">
    accountId>12345</accountId>
    <status>sent</status>                        
    <emailSubject>Test Form</emailSubject>
    <emailBlurb>This is a template test.</emailBlurb>
    <templateId>####-########</templateId>
    <templateRoles>
        <templateRole>
            <accessCode>AccessCode124</accessCode>" +
            <addAccessCodeToEmail>true</addAccessCodeToEmail>" +
            <email>jevans@eclarifire.com</email>
            <name>Test User</name>
            <roleName>RoleOne</roleName>
            <emailNotification>
                <emailSubject>This is RoleOne's subject</emailSubject>
                <emailBody>This is RoleOne's email.</emailBody>
                <addAccessCodeToEmail>true</addAccessCodeToEmail>
            </emailNotification>
        </templateRole>
        <templateRole>
            <accessCode>AccessCode246</accessCode>
            <email>jevans@eclarifire.com</email>
            <name>Test User2</name>
            <roleName>RoleTwo</roleName>
            <emailNotification>
                <emailBody>Your access code is 24680</emailBody>
            </emailNotification>
        </templateRole>
    </templateRoles>
</envelopeDefinition>

您会注意到我在templateRole节点中有两种不同的实现。这是故意的,因为我正在尝试我能想到的一切。在 templateRole(1) 中,我addAccessCodeToEmail在两个不同的地方添加了节点,但它在任何地方都不起作用。我也试图覆盖emailBlurb节点templateRole(1),它也不起作用。

我已经阅读了文档,它说您应该能够添加收件人格式遵循的任何内容,但我无法使其正常工作。

有人有任何想法吗?

4

2 回答 2

0

我从未在“创建/发送信封”API 请求中使用addAccessCodeToEmail属性,因为在收件人收到的电子邮件中包含访问代码会完全抵消使用访问代码进行身份验证的效果。即,要求收件人输入访问代码的全部目的是添加另一个在授予对信封的访问权限之前,保证层 - 除了某人只能访问电子邮件收件箱这一事实。如果您要在收件人收到的电子邮件中包含访问代码,那么使用访问代码作为身份验证形式不会提供任何额外的安全优势 - 任何有权访问该电子邮件收件箱的人都将能够轻松访问信封(与根本不使用访问代码的结果相同)。

话虽如此,有一个属性(无论出于何种原因)应该允许您在收件人收到的电子邮件中包含访问代码——我也无法让它工作。也许是一个错误,但 DocuSign 的某个人需要确认。根据文档,这应该会导致包含访问代码的电子邮件:

POST https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes
{
    "status"        : "sent",
    "emailBlurb"    : "please sign",
    "emailSubject"  : "Please sign your document",
    "templateId"    : "TEMPLATE_ID",
    "templateRoles" : [{
      "name"         : "John Doe",
      "email"        : "JohnsEmail@outlook.com",
      "roleName"     : "Signer1",
      "accessCode"   : "1234",
      "addAccessCodeToEmail": "true"
   }]
}

此请求导致收件人需要输入访问代码才能访问信封,但addAccessCodeToEmail属性没有达到预期效果,因为访问代码不会出现在收件人收到的电子邮件中的任何位置。

替代方法(最佳实践):不是将纯文本访问代码添加到电子邮件中,而是使用 API 创建/发送信封并要求访问代码作为收件人身份验证形式时的最佳实践是执行以下操作:

  • 使用您的应用程序知道的有关接收者的数据以编程方式设置accessCode 。
  • 设置“电子邮件模糊”(即电子邮件正文)以提供有关访问代码的提示。

例如,假设您的应用程序知道收件人的社会安全号码。当您发出“创建信封”API 请求时:

  • 将accessCode的值设置为收件人 SSN 的最后 4 位数字。
  • 设置emailBlurb的值以包含消息“您的访问代码是您的 SSN 的最后 4 位数字”。

以这种方式做事比简单地在电子邮件本身中包含访问代码(纯文本)要安全得多。

最后,关于您关于覆盖收件人的电子邮件主题和正文的问题 - 请参阅REST API 指南 ( http://www.docusign.com/sites/default/files/REST_API_Guide_v2的第 290-291 页上的emailNotification属性的定义。 pdf ):

  • 重要提示:如果为一个收件人启用此功能,它会覆盖信封主题和 EmailBlurb。此外,您必须为所有收件人启用 emailNotification

听起来您需要为每个收件人设置emailNotification如果您希望它有任何效果。

于 2013-10-22T16:04:53.073 回答
0

下面是几个示例,它们在 Create Envelope API 请求中使用“复合模板”来创建带有 ID 检查或电话身份验证作为收件人身份验证方法的信封。

收件人身份验证 = ID 检查

POST https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes
{
  "emailSubject": "Please sign",
  "emailBlurb": "Please sign...thanks!",
  "status": "sent",
  "compositeTemplates": [
  {
    "serverTemplates": [
    {
        "sequence" : 1,
        "templateId": "TEMPLATE_ID"
    }],
    "inlineTemplates": [
    {
        "sequence" : 2,
        "recipients": {
            "signers" : [{
                "email": "SallysEmail@outlook.com",
                "name": "Sally Adamson",
                "recipientId": "1",
                "roleName": "ROLE_NAME",
                "requireIdLookup": "true",
                "idCheckConfigurationName": "ID Check $"
            }]
        }
    }]
  }]  
}

收件人身份验证 = 电话身份验证

POST https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes
{
  "emailSubject": "Please sign",
  "emailBlurb": "Please sign...thanks!",
  "status": "sent",
  "compositeTemplates": [
  {
    "serverTemplates": [
    {
        "sequence" : 1,
        "templateId": "TEMPLATE_ID"
    }],
    "inlineTemplates": [
    {
        "sequence" : 2,
        "recipients": {
            "signers" : [{
                "email": "SallysEmail@outlook.com",
                "name": "Sally Adamson",
                "recipientId": "1",
                "roleName": "ROLE_NAME",
                "requireIdLookup": "true",
                "idCheckConfigurationName": "Phone Auth $",
              "phoneAuthentication": {
                "recipMayProvideNumber": "false",
                "senderProvidedNumbers": ["206-444-5555"]
              }
            }]
        }
    }]
  }]  
}
于 2013-10-22T18:32:34.640 回答