2015-10-14 84 views
0

您将很乐意了解那些.setRequestHeader设置应该针对此错误。DocuSign VBA错误400错误代码:ENVELOPE_IS_INCOMPLETE

Public Sub SignatureReq() 
Dim httpRequest As MSXML2.XMLHTTP60 

' defined request and result variables 
Set httpRequest = New XMLHTTP60 

' define the new URL for the signature request using the Base URL returned aboved appended with '/envelopes' 
Dim sigURL As String 
sigURL = URLBase & "/envelopes" 
' currently sig URL is 'https://demo.docusign.net/restapi/v2/accounts/[account number]' 

Dim Body As String 
     Body = "<envelopeDefinition xmlns=\" & Chr(34) & "http://www.docusign.com/restapi\" & Chr(34) & ">" + _ 
      "<accountId>MyAccountID</accountId>" + _ 
      "<status>sent</status>" + _ 
      "<emailSubject>DocuSign API Call - Signature request from template</emailSubject>" + _ 
      "<templateId>MyTemplateID</templateId>" + _ 
      "<templateRoles>" + _ 
      "<templateRole>" + _ 
      "<name>Ronco</name>" + _ 
      "<email>[email protected]</email>" + _ 
      "<roleName>Rono</roleName>" + _ 
      "</templateRole>" + _ 
      "</templateRoles>" + _ 
      "</envelopeDefinition>" 


Debug.Print Body 

httpRequest.Open "POST", sigURL, False 

httpRequest.setRequestHeader Body, "application/xml" 
httpRequest.setRequestHeader "X-DocuSign-Authentication", Author 
'httpRequest.setRequestHeader "Accept", "application/xml" 
httpRequest.setRequestHeader "Content-Type", "multipart/form-data" 
'httpRequest.setRequestHeader "Content-Type", "application/xml" 
httpRequest.send 

Debug.Print httpRequest.Status, "A" 
Debug.Print httpRequest.statusText, "B" 
Debug.Print httpRequest.responseText, "C" 

Exit Sub 

响应信息如下。我明白错误来自.setRequestHeader未正确设置。我在哪里可以找到DocuSign将接受的每个.setRequestHeader需要如何设置标题和值?

400错误的请求{“错误码”: “ENVELOPE_IS_INCOMPLETE”,“消息”:“信封是不完整的 完整的包膜需要的文档,收件人,标签和 主题行的内容类型。不包含边界参数。“ }需要

+0

因此,要回答您的代码问题,请将application/xml用于您的标题,而不是多部分。 Multipart仅在您使用JSON/XML + FILES时使用。 REST中的每个调用都支持JSON/XML。一些调用支持其他格式,如multipart。这并不能完全回答你的问题,所以我把它留作评论。 – Andrew

回答

0

当发送从模板的Content-Type的签名请求的API调用被设置为application/jsonapplication/xml。看起来你现在已经注释掉了,正在发送multipart/form-data请求。注释该行并添加回去:

httpRequest.setRequestHeader "Content-Type", "application/xml" 

如果不工作,或者你已经尝试过,我建议通过您的开发者帐户偏好启用请求记录和检查多数民众赞成被设置为原始请求确保你的代码正在生成你所期望的。