我希望能够创建一个信封,然后将链接通过电子邮件发送给签名人。我想出的代码段是:
EnvelopesApi envelopesApi = new EnvelopesApi();
envDef.Status = "sent";
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
RecipientViewRequest viewOptions = new RecipientViewRequest()
{
ReturnUrl = "https://www.docusign.com/devcenter",
ClientUserId = signer.ClientUserId,
AuthenticationMethod = "email",
UserName = signer.Name,
Email = signer.Email // does NOT send an email
};
ViewUrl recipientView = envelopesApi.CreateRecipientView(accountId, envelopeSummary.EnvelopeId, viewOptions);
该段之前的代码将获得帐户,签署者的信封定义等。
如果我设置 envDef.Status =“ sent”,则此代码可以正常工作。如果未设置该状态,则将从该段的最后一行代码中获取异常。
我只想让信封进入创建状态,然后获取 URL 并以我自己的代码发送电子邮件,该代码可以中继电子邮件。
或者,我可以提供电子邮件地址并让 Docusign 发送电子邮件吗?但是,在这种情况下,如果他们的电子邮件由于某种原因失败了怎么办?
最重要的是,我想一种方法来处理如果电子邮件发送失败会如何 re-send 链接的问题。
2 回答
重新陈述您的目标:
不建议使用这种方法,因为您通过
CreateRecipientView
获得的 URL 将在很短的时间内超时(我相信是 5 分钟)。换句话说,如果收件人没有打开您发送给他们的电子邮件,然后单击链接以在该时间段内启动其签名会话,则该链接将变为无效,并且他们将无法使用它来访问其签名会话。建议您仅指定收件人的信息(姓名,电子邮件,etc.)作为信封定义的一部分),而不是使用
CreateRecipientView
,然后 DocuSign 将向收件人发送一封电子邮件,其中包含可用于访问其信封的链接。该链接有效期为几天(不是几分钟,就像您通过CreateRecipientView
生成的链接一样),因此不要求签名者立即对其进行操作。如果由于某种原因,收件人放错了位置或没有收到 DocuSign 发送的电子邮件,它们,您可以通过使用 DocuSign Web UI 或通过使用指定了resendEnvelope=true
的UpdateRecipient
API 操作(如弗雷德里克在其回答中所述)轻松地将 DocuSign re-send 通知电子邮件。更新#1
无法检索收件人可以用来发起其签名会话的 long-lived 链接。解决您的方案的常用方法如下:
向签署者发送一封电子邮件,其中包含一个链接,可将其引导到您构建的网页-并指示他们**当他们准备 review/sign document(s)**时单击该链接以启动其信封。 (链接 URL 需要包含某种查询字符串参数,您的网页可以使用该参数来识别信封和 Recipient.)
设计您的网页,使其在收到入站请求时(就像收件人单击您发送给他们的电子邮件中的链接时一样),将使用 querystring 参数中的信息来标识信封和收件人,然后发出
CreateRecipientView
请求检索将启动该收件人的签名会话的 URL,最后自动将用户重定向到CreateRecipientView
响应返回的 URL,从而为 review/sign/submit 打开收件人的信封。通过执行类似的过程,您就可以 craft/send 收件人收到的电子邮件(而不是依靠 DocuSign 这样做),并且可以确保仅在用户指示他们收到邮件时才检索信封 URL。重新签名(以免 short-lived 链接在使用前失效)。
更新#2
有关如何使用 DocuSign C#SDK 向
EnvelopeDefinition
对象添加 recipient(s 的示例,请参见此“ 食谱”-具体来说,请参见requestSignatureOnDocumentTest方法中的代码。基本上是一个 two-step 流程:EnvelopeDefinition
对象的Recipients
属性。例如:我将尝试回答您的两个问题:
为了 re-send 将 DocuSign 电子邮件发送给收件人,您可以使用
UpdateRecipient()
方法(请参见下面的 C#示例)。这将 re-trigger 将签名电子邮件再次发送给交易接收者:官方文件的状态如下:
对的,这是可能的。创建信封时,请确保指定“已创建”状态,如下所示:
创建您的信封:
然后,准备就绪后,将信封状态更改为“已发送”。这将触发发送给收件人的电子邮件。瞧!