[英]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.