我有Soap API工作来获取令牌以通过IFrame加载文档并允许用户签名。但是,我需要获取它,以便可以将文档发送给其他人进行签名。正如我理解的事情,应该有一种方法来使用工作流将文档发送到一系列电子邮件地址,以便按特定顺序进行签名。不过,我还没有在显示这个的文档中找到任何东西。我也搜索了谷歌。 Docusign销售团队表示要么购买支持时间,要么使用Stackoverflow,所以我在这里。肥皂API和工作流程
我目前拥有将在Docusign系统中创建文档的代码,并且我可以在“等待他人”部分看到文档在那里并正在等待客户。但是,我从来没有收到任何地址的电子邮件。以下是我用来调用服务的代码。
我已检查所有电子邮件帐户,但他们没有任何docusign地址被阻止,并且没有任何垃圾邮件文件夹中。
public void CreateDocs(string emailSubject, List<FileToSign> files, IEnumerable<Recipient> recipents, IEnumerable<Tab> tabs)
{
var envelope = new Envelope
{
Subject = emailSubject,
EmailBlurb = emailSubject,
AccountId = _apiAccountId,
Recipients = recipents.ToArray(),
Documents = files.Select((t, i) => new Document
{
PDFBytes = File.ReadAllBytes(t.PathToFile),
Name = t.DocumentName,
ID = (i + 1).ToString(),
FileExtension = t.Extension
}).ToArray(),
Tabs = tabs.ToArray()
};
using (var client = new DSAPIServiceSoapClient("DSAPIServiceSoap"))
{
EnvelopeStatus status;
using (new OperationContextScope(client.InnerChannel))
{
var httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers.Add("X-DocuSign-Authentication", _auth);
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
status = client.CreateAndSendEnvelope(envelope);
}
if (!status.SentSpecified) return;
EnvelopeStatus = status;
}
}
编辑:添加样品收件人:
Recipients.Add(new Recipient
{
UserName = row["FirstSigner"].ToString(),
Email = row["SignerEmail"].ToString(),
ID = "1",
Type = RecipientTypeCode.Signer,
CaptiveInfo = new RecipientCaptiveInfo { ClientUserId = "1" },
RoleName = "Signer1",
RoutingOrder = 1
});
你能告诉我们你在'IEnumerable recipents'中设置的属性吗?它很难说,没有看到你的整个代码。 –
我很好奇你是否有理由使用DocuSign SOAP api。 DocuSign [REST api](https://docs.docusign.com/esign/)具有更丰富的功能,并具有易于使用的[c#SDK](https://github.com/docusign/docusign-csharp-client) –