首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docusign : UNKNOWN_ENVELOPE_RECIPIENT错误

Docusign : UNKNOWN_ENVELOPE_RECIPIENT错误
EN

Stack Overflow用户
提问于 2017-01-18 14:10:47
回答 1查看 1.3K关注 0票数 0

我正在尝试一个简单的例子来获得一个用docuSign签名的pdf,但是当我试图让ViewUrl重定向用户时,我遇到了UNKNOWN_ENVELOPE_RECIPIENT错误。

下面是我用来用pdf文档创建信封的代码。

代码语言:javascript
复制
    string recipientName = "Tester";
    string recipientEmail = "test@me.com";
    string accountId = AuthenticateDocuSign();
    byte[] fileBytes = File.ReadAllBytes(@"C:\temp\test.pdf");


    EnvelopeDefinition envDef = new EnvelopeDefinition();
    envDef.EmailSubject = "[DocuSign C# SDK] - Please sign this doc";

    // Add a document to the envelope
    DocuSign.eSign.Model.Document doc = new DocuSign.eSign.Model.Document();
    doc.DocumentBase64 = System.Convert.ToBase64String(fileBytes);
    doc.Name = "TestFile.pdf";
    doc.DocumentId = "1";

    envDef.Documents = new List<DocuSign.eSign.Model.Document>();
    envDef.Documents.Add(doc);

    // Add a recipient to sign the documeent
    Signer signer = new Signer();
    signer.Email = recipientEmail;
    signer.Name = recipientName;
    signer.RecipientId = "1";

    // Create a |SignHere| tab somewhere on the document for the recipient to sign
    signer.Tabs = new Tabs();
    signer.Tabs.SignHereTabs = new List<SignHere>();
    SignHere signHere = new SignHere();
    signHere.DocumentId = "1";
    signHere.PageNumber = "1";
    signHere.RecipientId = "1";
    signHere.XPosition = "100";
    signHere.YPosition = "100";
    signer.Tabs.SignHereTabs.Add(signHere);

    envDef.Recipients = new Recipients();
    envDef.Recipients.Signers = new List<Signer>();
    envDef.Recipients.Signers.Add(signer);

    // set envelope status to "sent" to immediately send the signature request
    envDef.Status = "sent";

    // |EnvelopesApi| contains methods related to creating and sending Envelopes (aka signature requests)
    EnvelopesApi envelopesApi = new EnvelopesApi();

    EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);

    RecipientViewRequest viewOptions = new RecipientViewRequest()
    {
        ReturnUrl = returnURL,
        ClientUserId = "1000",  // must match clientUserId set in step #2!
        AuthenticationMethod = "email",
        UserName = recipientName,
        Email = recipientEmail, 
    };
    ViewUrl recipientView = envelopesApi.CreateRecipientView(accountId, envelopeSummary.EnvelopeId, viewOptions); // EXCEPTION!

完全错误:

DocuSign.eSign.Client.ApiException未被用户代码处理 ErrorCode=400 HResult=-2146233088 Message=Error调用CreateRecipientView:{ "errorCode":"UNKNOWN_ENVELOPE_RECIPIENT", "message":“您标识的收件人不是指定信封的有效收件人”}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 15:40:43

正如Luis在上面的注释中所指出的,如果您想随后检索收件人的“查看”URL,则必须在创建信封请求中为签名者指定clientUserId属性:

代码语言:javascript
复制
signer.clientUserId = 1000;

您可以将clientUserId属性设置为您选择的任何值--在本例中我使用了1000,因为这是您的代码在Post收件人视图请求中使用的值。

代码语言:javascript
复制
ClientUserId = "1000",  // must match clientUserId set in step #2!

(在“clientUserIdname”和“email”属性值中,您在Post收件人视图请求中指定的值必须与您在创建信封请求中为收件人指定的值完全匹配。)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41721651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档