Docusignapi Docusign ViewUrl:未知\u信封\u收件人错误

Docusignapi Docusign ViewUrl:未知\u信封\u收件人错误,docusignapi,Docusignapi,我正在尝试一个简单的示例来获取pdf登录docuSign,但在尝试获取ViewUrl以重定向用户时遇到未知的\u信封\u收件人错误 下面是我用来创建带有pdf文档的信封的代码 string recipientName = "Tester"; string recipientEmail = "test@me.com"; string accountId = AuthenticateDocuSign(); byte[] fileBytes = File.ReadAll

我正在尝试一个简单的示例来获取pdf登录docuSign,但在尝试获取ViewUrl以重定向用户时遇到未知的\u信封\u收件人错误

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

    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!
string recipientName=“Tester”;
字符串recipientEmail=”test@me.com";
字符串accountId=AuthenticateDocuSign();
byte[]fileBytes=File.ReadAllBytes(@“C:\temp\test.pdf”);
EnvelopedDefinition envDef=新的EnvelopedDefinition();
envDef.EmailSubject=“[DocuSign C#SDK]-请签署此文件”;
//将文档添加到信封中
DocuSign.eSign.Model.Document doc=新建DocuSign.eSign.Model.Document();
doc.DocumentBase64=System.Convert.tobase64字符串(fileBytes);
doc.Name=“TestFile.pdf”;
doc.DocumentId=“1”;
envDef.Documents=新列表();
envDef.Documents.Add(doc);
//添加收件人以签署文档
签名者签名者=新签名者();
signer.Email=收件人电子邮件;
signer.Name=接收方名称;
signer.RecipientId=“1”;
//在文档的某个位置创建一个| SignHere |选项卡供收件人签名
signer.Tabs=新选项卡();
signer.Tabs.SignHereTabs=新列表();
SignHere SignHere=新的SignHere();
signHere.DocumentId=“1”;
signHere.PageNumber=“1”;
signHere.RecipientId=“1”;
signHere.XPosition=“100”;
signHere.YPosition=“100”;
signer.Tabs.SignHereTabs.Add(signHere);
envDef.Recipients=新收件人();
envDef.Recipients.Signers=新列表();
envDef.Recipients.Signers.Add(signer);
//将信封状态设置为“已发送”,以立即发送签名请求
envDef.Status=“已发送”;
//|信封API |包含与创建和发送信封(又名签名请求)相关的方法
EnvelopesApi EnvelopesApi=新的EnvelopesApi();
EnvelopesSummary EnvelopesSummary=envelopesApi.CreateEnvelope(accountId,envDef);
RecipientViewRequestViewOptions=新RecipientViewRequest()
{
ReturnUrl=ReturnUrl,
ClientUserId=“1000”,//必须与步骤2中设置的ClientUserId匹配!
AuthenticationMethod=“电子邮件”,
用户名=收件人姓名,
电子邮件=收件人电子邮件,
};
ViewUrl recipientView=envelopesApi.CreateRecipientView(accountId,EnvelopesSummary.EnvelopeId,viewOptions);//例外!
完全错误:

用户代码未处理DocuSign.eSign.Client.ApiException
ErrorCode=400 HResult=-2146233088消息=调用错误 CreateRecipientView:{“错误代码”:“未知的信封收件人”,
“邮件”:“您标识的收件人不是有效的收件人 指定信封的名称。“}


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

signer.clientUserId = 1000;
您可以将clientUserId属性设置为您选择的任何值——我在本例中使用了1000,因为这是您的代码在Post Recipient View请求中使用的值

ClientUserId = "1000",  // must match clientUserId set in step #2!

(您在Post Recipient View请求中指定的clientUserIdnameemail属性值必须与您在Create Envelope请求中为收件人指定的值完全匹配。)

正如Luis在上面的评论中指出的那样,如果您希望能够随后检索该收件人的“查看”URL,则必须在创建信封请求中为签名者指定clientUserId属性:

signer.clientUserId = 1000;
您可以将clientUserId属性设置为您选择的任何值——我在本例中使用了1000,因为这是您的代码在Post Recipient View请求中使用的值

ClientUserId = "1000",  // must match clientUserId set in step #2!

(您在投递收件人视图请求中指定的客户端用户ID名称电子邮件属性值必须与您在创建信封请求中为收件人指定的值完全匹配。)

创建此信封时,您是否确实定义了收件人的clientUserID?名称、电子邮件@和clientUserID的三元组必须与信封创建过程中提供的收件人信息相匹配,才能成功创建收件人视图。@Luiscott:谢谢,我必须添加signer.clientUserID=“1000”。您应该将您的评论转换为回答您在创建此信封时是否确实定义了收件人的clientUserID?名称、电子邮件@和clientUserID的三元组必须与信封创建过程中提供的收件人信息相匹配,才能成功创建收件人视图。@Luiscott:谢谢,我必须添加signer.clientUserID=“1000”。你应该把你的评论转换成答案