簡體   English   中英

創建信封定義時無法在簽名者上傳遞全名

[英]Can't pass in a full name on the signer when creating the envelope definition

使用與 docusign 站點上的快速入門項目幾乎相同的設置來創建信封定義。 在我嘗試在簽名者 object 上添加全名之前,沒有任何問題,

Signer signer = new Signer
        {
            Email = recipientEmail,
            Name = fullName,
            FirstName = recipientFirstName,
            LastName = recipientLastName,
            RecipientId = "1",
            RoutingOrder = "1",
        };

無論出於何種原因,當名稱中有空格時,我都會得到 500 的回報。 我正在使用最新的 nuget(5.8.0)。 如果我拿出空間,那么一切都很好。 除非我不應該使用這個字段,否則我應該如何傳遞簽名者的全名?

添加我目前正在使用的完整代碼,

    public string GetSigningUrl(FileItem fileItem, string recipientEmail, string recipientFirstName, string recipientLastName)
    {
        string clientUserId = Guid.NewGuid().ToString();

        EnvelopesApi envelopeApi = CreateEnvelopeApi();
        EnvelopeSummary envelopeSummary = CreateEnvelope(fileItem, recipientEmail, recipientFirstName, recipientLastName, envelopeApi, clientUserId);
        RecipientViewRequest viewRequest = MakeRecipientViewRequest(recipientEmail, recipientFirstName, clientUserId);

        return envelopeApi.CreateRecipientView(_docuSignAuthorizationService.AccountID, envelopeSummary.EnvelopeId, viewRequest).Url;
    }
    protected EnvelopeDefinition CreateEnvelopDefinition(FileItem fileItem, string recipientEmail, string recipientFirstName, string recipientLastName, ref EnvelopesApi envelopesApi, string clientUserId = null)
    {
        Document document = new Document
        {
            DocumentBase64 = Convert.ToBase64String(fileItem.Data),
            Name = "Lorem Ipsum", //fileItem.FileName,
            FileExtension = "pdf", //fileItem.ContentType,
            DocumentId = "1"
        };
        Document[] documents = new Document[] { document };

        Signer signer = new Signer
        {
            Email = recipientEmail,
            Name = $"{recipientFirstName} {recipientLastName}",
            //FullName = $"{recipientFirstName} {recipientLastName}",
            RecipientId = "1",
            RoutingOrder = "1",
        };

        if (clientUserId != null)
            signer.ClientUserId = clientUserId;

        // signing field on the document
        SignHere signHereTab = new SignHere
        {
            DocumentId = "1",
            PageNumber = "1",
            RecipientId = "1",
            TabLabel = "Sign Here Tab",
            XPosition = "195",
            YPosition = "147"
        };
        SignHere[] signHereTabs = new SignHere[] { signHereTab };

        signer.Tabs = new Tabs { SignHereTabs = new List<SignHere>(signHereTabs) };
        Signer[] signers = new Signer[] { signer };
        Recipients recipients = new Recipients { Signers = new List<Signer>(signers) };
        EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition
        {
            EmailSubject = "Please sign the document",
            Documents = new List<Document>(documents),
            Recipients = recipients,
            Status = "sent"
        };

        if (envelopesApi == null)
            envelopesApi = CreateEnvelopeApi();
        return envelopeDefinition;
    }

    protected EnvelopeSummary CreateEnvelope(FileItem fileItem, string recipientEmail, string recipientFirstName, string recipientLastName, EnvelopesApi envelopesApi = null, string clientUserId = null)
    {
        EnvelopeDefinition envelopeDefinition = CreateEnvelopDefinition(fileItem, recipientEmail, recipientFirstName, recipientLastName, ref envelopesApi, clientUserId);

        EnvelopeSummary results = envelopesApi.CreateEnvelope(_docuSignAuthorizationService.AccountID, envelopeDefinition);
        return results;
    }

簽名者 object 中有 4 個字段,我們知道這有點令人困惑,但我試圖解釋一下:

姓名- 法定全名,可包含中間名,最多 100 個字符,必填字段

FullName - DocuSign 在內部使用它來組合 first+last。

FirstName - 只有名字,最多 50 個字符,可選字段。

LastName - 只有姓氏,最多 50 個字符,可選字段。

我嘗試使用最新的 nuget for C# 在所有這些字段中使用空格,如果你這樣做了,我沒有收到任何錯誤 - 你能分享你使用的值嗎? 可能是其他原因

原來我將錯誤的值傳遞給收件人視圖請求,這導致了失敗,因為名稱與創建的信封中的值不匹配。

下面是現在那里的更改,在輸入到 UserName 之前的值只是來自常量而不是來自我的請求數據的假值。

RecipientViewRequest viewRequest = new RecipientViewRequest
        {
            AuthenticationMethod = "none",
            Email = signerEmail,
            UserName = signerName,
            ClientUserId = clientUserId,
            ReturnUrl = _docuSignConfig.RedirectUrl
        };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM