【发布时间】:2020-01-14 16:47:44
【问题描述】:
我正在设置一个网络应用程序,它使用 DocuSign 向各种不同的客户端发送电子签名请求。对不同客户的每个请求都需要显示不同的发件人姓名和电子邮件地址,而不仅仅是 DocuSign 帐户上的主姓名。完成的电子签名表格也需要通过电子邮件发送到这些客户特定的电子邮件地址。
我在我的 DocuSign 帐户中创建了一个新的第二个登录作为测试,并且能够让它显示此登录的名称/电子邮件,但只有当我从该帐户生成一个全新的临时演示 API 密钥并使用它时在应用程序中。
我可以通过更改 EnvelopeDefinition.EmailSettings.ReplyEmailAddressOverride 字段来更改回复电子邮件,但发送给签名者的信封电子邮件仍会显示主帐户名称/电子邮件,并且已签名的文档会通过电子邮件发送到主电子邮件。
如何更改发送给签名者的姓名和电子邮件地址以及接收签名文档的电子邮件地址?
string signerName = "John Doe";
string signerEmail = "johndoe@fake.com";
string accessToken = "{The DocuSign API KEY}";
string accountId = "{The DocuSign Account Number}";
Document document = new Document
{
DocumentBase64 = Convert.ToBase64String(ReadContent(docName)),
Name = "Please Sign This Form",
FileExtension = "docx",
DocumentId = "1"
};
Document[] documents = new Document[] { document };
Signer signer = new Signer
{
Email = signerEmail,
Name = signerName,
RecipientId = "1",
RoutingOrder = "1"
};
Tabs tabs = new Tabs();
SignHere signHereTab = new SignHere
{
DocumentId = "1",
PageNumber = "1",
AnchorString = "Patient Signature or Mark",
AnchorUnits = "pixels",
AnchorXOffset = "10",
AnchorYOffset = "-18",
Width = "160"
};
List<SignHere> signatureTabs = new List<SignHere>();
signatureTabs.Add(signHereTab);
tabs.SignHereTabs = signatureTabs;
FullName nameTab = new FullName
{
DocumentId = "1",
PageNumber = "1",
TabLabel = "Full Name",
Value = signerName,
AnchorUnits = "pixels",
AnchorString = "Name:",
AnchorXOffset = "133",
AnchorYOffset = "5"
};
List<FullName> nameTabs = new List<FullName>();
nameTabs.Add(nameTab);
tabs.FullNameTabs = nameTabs;
signer.Tabs = tabs;
Recipients recipients = new Recipients
{
Signers = new List<Signer> { signer }
};
EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition
{
EmailSubject = "Please Sign Form",
Documents = new List<Document>(documents),
Recipients = recipients,
Status = "sent"
};
//Override the reply email address
envelopeDefinition.EmailSettings = new EmailSettings();
envelopeDefinition.EmailSettings.ReplyEmailAddressOverride = "client-specific-email@fake.com";
envelopeDefinition.EmailSettings.ReplyEmailNameOverride = "Test Account";
ApiClient apiClient = new ApiClient(basePath);
apiClient.Configuration.AddDefaultHeader("Authorization", "Bearer " + accessToken);
EnvelopesApi envelopesApi = new EnvelopesApi(apiClient.Configuration);
EnvelopeSummary results = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);
【问题讨论】:
-
如何对 API 进行身份验证?你使用 Auth Code Grant 还是 JWT?
-
我在 ApiClient 的默认标头中传递 API 密钥:ApiClient apiClient = new ApiClient(basePath); apiClient.Configuration.AddDefaultHeader("授权", "承载" + accessToken); EnvelopesApi 信封Api = new EnvelopesApi(apiClient.Configuration); EnvelopeSummary results = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);
-
我用我如何发送信封的代码示例更新了原始帖子
-
是的,但是你如何获得你的accessToken?
-
我使用来自 DocuSign 的 OAuth 令牌生成器 developers.docusign.com/oauth-token-generator
标签: docusignapi