0

我正在尝试使用compositeTemplate 创建一个包含收件人信息和用户提供的文档的信封。收件人信息或文档在创建时都不会添加到信封中。然而,信封使用服务器模板部分中提供的模板。bytestring 变量是 pdfbytes。我正在使用 REST API。下面是我的 xml 字符串。任何帮助表示赞赏。

9/12 编辑,原始结果相同。作为附加说明,我已经成功创建了一个包含提供的 pdf 字节但不使用任何模板的信封。

<envelopeDefinition xmlns="http://www.docusign.com/restapi">
            ...
            <compositeTemplates>
                <compositeTemplate>
                    <serverTemplates>
                       ...
                    </serverTemplates>
                    <inlineTemplates>
                       ...
                    </inlineTemplates>
                    <document>
                        <name>DOCUSIGN API TEST DOC</name>
                        <documentId>123456</documentId>
                        <documentBase64>pdfbytestring</documentBase64>
                    </document>
                </compositeTemplate>
            </compositeTemplates>
        </envelopeDefinition>
4

1 回答 1

0

PDFBytes不是 DocuSign REST API 中文档的有效属性——在REST API 指南中没有提到该属性。(它SOAP API 中的一个有效属性——但您没有使用 SOAP API。)这可能是 DocuSign 不将文档添加到信封的原因——它不识别PDFBytes属性,所以它只是忽略它。

您可以尝试使用documentBase64属性(而不是PDFBytes)。

除了使用documentBase64属性(而不是PDFBytes)之外,我还建议您重新访问您的 XML 请求结构——如果您希望信封包含 API 请求中指定的文档(而不是文档)是模板的一部分),那么您的请求的结构应如下所示:

(此处仅显示请求的compositeTemplates部分):

<compositeTemplates>
  <compositeTemplate>
      <serverTemplates>
        <serverTemplate>
            ...
        </serverTemplate>
      </serverTemplates>
      <inlineTemplates>
        <inlineTemplate>
            ...
        </inlineTemplate>
      </inlineTemplates>        
      <document>
        <name>DOCUMENT_NAME</name>
        <documentId>DOCUMENT_ID</documentId>
        <documentBase64>DOCUMENT_BYTES</documentBase64>
      </document>
  </compositeTemplate>
</compositeTemplates>

换句话说——使<document>节点成为inlineTemplates节点和serverTemplates节点的对等元素,并完全移除封装的<documents>元素(如我在上面的示例中所示)。

于 2014-09-10T14:27:10.617 回答