CreateAndSendEnvelope不起作用

时间:2013-11-15 18:35:22

标签: vb.net docusignapi

我使用SOAP API https://demo.docusign.net/api/3.0/dsapi.asmx发送信封。我在VB .NET中编写代码。如果我发送 PDF 文件,我将从网络服务获取 Unspecified_Error 。如果我发送 docx 文件,我将系统无法将此文档转换为PDF。无法将文档(DocusignTestDoc.docx)转换为PDF。错误:无法将文档提交到转换服务器:EnvelopeId:00000000-0000-0000-0000-000000000000 DocumentName:DocusignTestDoc.docx - SubmitCode:-10242 错误,从API返回。我不知道在哪里解决这个问题。这是我的有效载荷。

POST https://demo.docusign.net/api/3.0/dsapi.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
X-DocuSign-Authentication: <DocuSignCredentials><Username>myemail@example.com</Username><Password>mypassword</Password><IntegratorKey>my integratorkey</IntegratorKey></DocuSignCredentials>
SOAPAction: "http://www.docusign.net/API/3.0/CreateAndSendEnvelope"
Host: demo.docusign.net
Content-Length: 17996
Expect: 100-continue
Accept-Encoding: gzip, deflate

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <CreateAndSendEnvelope xmlns="http://www.docusign.net/API/3.0">
      <Envelope>
        <AccountId>Account ID GUID</AccountId>
        <Documents>
          <Document>
            <ID>1</ID>
            <Name>DocusignTestDoc.docx</Name>
            <PDFBytes>Something like this qAABkb2NQcm9wcy9hcHAueG1sUEsFBgAAAAAMAAwA/wIAAG0tAAAAAAA=</PDFBytes>
            <FileExtension>.docx</FileExtension>
          </Document>
        </Documents>
        <Recipients>
          <Recipient>
            <UserName>R1</UserName>
            <Email>r1@yahoo.com</Email>
            <Type>Signer</Type>
            <AccessCode xsi:nil="true" />
          </Recipient>
          <Recipient>
            <UserName>R2</UserName>
            <Email>r2@gmail.com</Email>
            <Type>Signer</Type>
            <AccessCode xsi:nil="true" />
          </Recipient>
        </Recipients>
        <Tabs>
          <Tab>
            <DocumentID>1</DocumentID>
            <RecipientID>1</RecipientID>
            <PageNumber>1</PageNumber>
            <XPosition>350</XPosition>
            <YPosition>350</YPosition>
            <Type>Company</Type>
          </Tab>
          <Tab>
            <DocumentID>1</DocumentID>
            <RecipientID>1</RecipientID>
            <PageNumber>1</PageNumber>
            <XPosition>350</XPosition>
            <YPosition>450</YPosition>
            <Type>SignHere</Type>
          </Tab>
          <Tab>
            <DocumentID>1</DocumentID>
            <RecipientID>2</RecipientID>
            <PageNumber>1</PageNumber>
            <XPosition>350</XPosition>
            <YPosition>550</YPosition>
            <Type>SignHere</Type>
          </Tab>
        </Tabs>
        <Subject>Test application</Subject>
        <EmailBlurb>Hello, this is the test application for you to sign</EmailBlurb>
      </Envelope>
    </CreateAndSendEnvelope>
  </s:Body>
</s:Envelope>

如果我在这里丢失任何东西,请帮助我,让我知道。非常感谢你。

Htwemay

1 个答案:

答案 0 :(得分:1)

首先,尝试从文件名值中删除 .docx 扩展名(&lt;名称&gt; )并删除期间(。)从文件扩展名值(&lt; FileExtension&gt; )。执行此操作时,请求的&lt; Document&gt; 部分将如下所示(对于.docx文件):

<Document>
    <ID>1</ID>
    <Name>DocusignTestDoc</Name>
    <PDFBytes>Something like this qAABkb2NQcm9wcy9hcHAueG1sUEsFBgAAAAAMAAwA/wIAAG0tAAAAAAA=</PDFBytes>
    <FileExtension>docx</FileExtension>
</Document>

或者像这样,如果您要发送PDF:

<Document>
    <ID>1</ID>
    <Name>DocusignTestDoc</Name>
    <PDFBytes>Something like this qAABkb2NQcm9wcy9hcHAueG1sUEsFBgAAAAAMAAwA/wIAAG0tAAAAAAA=</PDFBytes>
    <FileExtension>pdf</FileExtension>
</Document>

如果您仍然收到错误,那么我建议您执行以下操作进行问题排查:

  1. 确定您尝试发送的文件(由&lt; PDFBytes&gt; 表示)确实属于您为<指定的相同文件类型强>&LT; FileExtension&GT; 即可。 (我能够通过发送PDF文件的字节但是将&lt; FileExtension&gt; 设置为 docx 来重现您所获得的错误 - 所以一个不准确的文件扩展名肯定会有问题。)

  2. 确认您在&lt; PDFBytes&gt; 中发送的字节确实代表了文件的完整/准确内容。

  3. 暂时搁置API并测试DocuSign是否能够在您通过DocuSign Web控制台创建新信封时将文件转换为PDF并上传文件。如果您能够通过DocuSign UI(Web控制台)成功将文件上传到新的信封,那么这证明该文件是有效的(即,没有损坏),您的问题很可能是#1或#2上方。