Docusignapi Docusign API-使用模板请求签名
我正在尝试测试RESTAPI,以便在WCF Web服务中使用C#在通过模板引用的文档上请求签名 登录的步骤1起作用&返回accountID&baseURl 步骤2失败,请求不正确 这是我的密码:Docusignapi Docusign API-使用模板请求签名,docusignapi,Docusignapi,我正在尝试测试RESTAPI,以便在WCF Web服务中使用C#在通过模板引用的文档上请求签名 登录的步骤1起作用&返回accountID&baseURl 步骤2失败,请求不正确 这是我的密码: try { ... string requestBody = "<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" + "<accountId>" + accoun
try {
...
string requestBody = "<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" +
"<accountId>" + accountId + "</accountId>" +
"<status>" + "sent" + "</status>" +
"<emailSubject>" + "API Call for Embedded Sending" + "</emailSubject>" +
"<emailBlurb>" + "This comes from C#" + "</emailBlurb>" +
"<templateId>" + "9A535489-0FB6-42B2-82C1-A06DA36025B4" + "</templateId>" +
"<templateRoles>" +
"<email>" + "abc@gmail.com" + "</email>" + // NOTE: Use different email address if username provided in non-email format!
"<name>" + "GRAVITY1003" + "</name>" + // username can be in email format or an actual ID string
"<roleName>" + "GRAVITY1003" + "</roleName>" +
"</templateRoles>" +
"</envelopeDefinition>";
// append "/envelopes" to baseUrl and use in the request
request = (HttpWebRequest)WebRequest.Create(baseURL + "/envelopes");
request.Headers.Add("X-DocuSign-Authentication", authenticateStr);
request.ContentType = "application/xml";
request.Accept = "application/xml";
request.ContentLength = requestBody.Length;
request.Method = "POST";
// write the body of the request
byte[] body = System.Text.Encoding.UTF8.GetBytes(requestBody);
Stream dataStream = request.GetRequestStream();
dataStream.Write(body, 0, requestBody.Length);
dataStream.Close();
// read the response
webResponse = (HttpWebResponse)request.GetResponse();------> It fails here
sr = new StreamReader(webResponse.GetResponseStream());
responseText = sr.ReadToEnd();
uri = responseText;
}
catch (WebException e)
{
using (WebResponse response = e.Response)
{
HttpWebResponse httpResponse = (HttpWebResponse)response;
Console.WriteLine("Error code: {0}", httpResponse.StatusCode);
using (Stream data = response.GetResponseStream())
{
string text = new StreamReader(data).ReadToEnd();
Console.WriteLine(text);
}
}
}
试试看{
...
字符串requestBody=“”+
“”+accountId+“”+
“+”已发送“+”+
用于嵌入式发送的“+”API调用“+”+
“+”这来自C++”+
“+”9A535489-0FB6-42B2-82C1-A06DA36025B4“+”+
"" +
"" + "abc@gmail.com“+”“+//注意:如果用户名以非电子邮件格式提供,请使用不同的电子邮件地址!
“”“+”GRAVITY1003“+”“+//用户名可以是电子邮件格式或实际的ID字符串
“+”重力1003“+”+
"" +
"";
//将“/信封”附加到baseUrl并在请求中使用
request=(HttpWebRequest)WebRequest.Create(baseURL+“/envelopes”);
添加(“X-DocuSign-Authentication”,authenticateStr);
request.ContentType=“应用程序/xml”;
request.Accept=“application/xml”;
request.ContentLength=requestBody.Length;
request.Method=“POST”;
//写下请求的主体
byte[]body=System.Text.Encoding.UTF8.GetBytes(requestBody);
Stream dataStream=request.GetRequestStream();
Write(body,0,requestBody.Length);
dataStream.Close();
//阅读回复
webResponse=(HttpWebResponse)request.GetResponse();------>它在这里失败
sr=新的StreamReader(webResponse.GetResponseStream());
responseText=sr.ReadToEnd();
uri=响应文本;
}
捕获(WebE例外)
{
使用(WebResponse=e.response)
{
HttpWebResponse httpResponse=(HttpWebResponse)响应;
WriteLine(“错误代码:{0}”,httpResponse.StatusCode);
使用(Stream data=response.GetResponseStream())
{
字符串文本=新的StreamReader(数据).ReadToEnd();
控制台写入线(文本);
}
}
}
谁能告诉我我做错了什么?我查看了API演练并对其进行了相应的编码。不知道为什么会发生这种情况。看起来您正在研究的要点中有一个bug,错误的版本被错误地上传了。要点已经修复,问题只是缺少一个xml节点 由于在给定模板上可以有多个模板角色,因此需要有一个额外的xml节点来分隔每个角色。您需要做的是在
节点之间添加单个
xml节点
因此,您的请求主体应该如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<envelopeDefinition xmlns="http://www.docusign.com/restapi">
<accountId>123456</accountId>
<status>sent</status>
<emailSubject>API Call for sending signature request from template</emailSubject>
<emailBlurb>This comes from Java</emailBlurb>
<templateId>EA64D446-3BFA-*********************</templateId>
<templateRoles>
<templateRole>
<email>recipient_email_address</email>
<name>recipient_name</name>
<roleName>template_role_name</roleName>
</templateRole>
</templateRoles>
</envelopeDefinition>
123456
发送
用于从模板发送签名请求的API调用
这来自Java
EA64D446-3BFA-*********************
收件人\电子邮件\地址
收件人姓名
模板\角色\名称