【发布时间】:2014-08-16 05:42:37
【问题描述】:
更新了工作解决方案
我正在尝试使用 ColdFusion 集成 DocuSign API 并不断遇到问题。我能够成功验证并检索基本 URL。但是,当尝试使用单个收件人和文档创建信封时,我收到一条错误消息,指出在请求中找不到“边界终止符”(当它很明显时)。
我知道这个问题与这里的另一个帖子类似,但那是不久前的帖子,从未完全回答过。
我首先阅读了PDF文档:
<cffile action="READBINARY" file="Agreement.pdf" variable="docData">
<cfset docData = BinaryEncode(docData,"Base64")>
然后我使用包含编码二进制 PDF 数据的元素在 XML 中创建信封定义:
<cfset envelope = "<envelopeDefinition xmlns=""http://www.docusign.com/restapi"">
<status>Sent</status>
<emailSubject>eSignature request</emailSubject>
<emailBlurb>Please sign the document</emailBlurb>
<recipients>
<signers>
<signer>
<recipientId>1</recipientId>
<name>eCS Buyer</name>
<email>XXX@XXXX.com</email>
<tabs>
<signHereTabs>
<signHere>
<documentId>1</documentId>
<pageNumber>3</pageNumber>
<xPosition>10</xPosition>
<yPosition>100</yPosition>
</signHere>
</signHereTabs>
</tabs>
</signer>
</signers>
</recipients>
<documents>
<document>
<name>Agreement.pdf</name>
<documentId>1</documentId>
<fileExtension>pdf</fileExtension>
<documentBase64>#docData#</documentBase64>
</document>
</documents>
</envelopeDefinition>">
最后,我发布信息:
<cfhttp url="#baseURL#/envelopes" method="POST" resolveurl="Yes" throwonerror="No">
<cfhttpparam name="X-DocuSign-Authentication" type="HEADER" value="<DocuSignCredentials><Username>#userName#</Username><Password>#password#</Password><IntegratorKey>#integratorKey#</IntegratorKey></DocuSignCredentials>">
<cfhttpparam name="Content-Type" type="HEADER" value="application/xml">
<cfhttpparam name="Accept" type="HEADER" value="application/xml">
<cfhttpparam name="Content-Length" type="HEADER" value="#Len(envelope)#">
<cfhttpparam name="request_body" type="BODY" value="#envelope#">
</cfhttp>
我尝试将请求正文的 TYPE 属性更改为 XML 和 FORFIELD,但仍然无法正常工作。我什至尝试将信封更改为 JSON 格式,但无济于事。
产生的错误是:
<errorCode>INVALID_REQUEST_BODY</errorCode><message>The request body is missing or improperly formatted. The XML request does not match the expected format. </message></errorDetails>
我已经为此苦苦挣扎了好几个星期。任何指导将不胜感激。
【问题讨论】: