我正在尝试使用Docusign API创建信封以获取上传文档的发件人视图,然后获取收件人视图。
发件人部分工作正常。我创建了包含所有信息的请求,然后我就可以发送文档并在控制台中打开它并添加我的签名选项卡。
myResponse = getResponseBody(myRequest)
Dim uri As String = parseDataFromResponse(myResponse, "uri")
Dim envelopeId As String =
parseDataFromResponse(myResponse, "envelopeId")
url = baseURL + uri + "/views/sender"
Dim returnUrl As String = "http://whatever.com"
xmlBody =
"<returnUrlRequest xmlns=""http://www.docusign.com/restapi"">
<returnUrl>" & returnUrl & "</returnUrl></returnUrlRequest>"
myRequest = initializeRequest(url, "POST", xmlBody, username, password,
integratorKey)
myResponse = getResponseBody(myRequest)
Session("senderViewUrl") = parseDataFromResponse(myResponse, "url")
工作得很好。我将浏览器重定向到senderViewURL
并创建了信封。接下来的几行代码我希望能够从收件人视图中获取returnUrl,这样我就可以将它嵌入到我的网站上的iframe中以供另一个用户使用,但我得到的是400 BAD REQUEST。一切看起来都很好。我尝试使用和不使用“authenticationInstant”标记。
url = baseURL + uri + "/views/recipient"
Dim requestBody As String = "<recipientViewRequest
xmlns=""http://www.docusign.com/restapi"">" &
"<authenticationMethod>email</authenticationMethod>" &
"<email>" & recipientEmail & "</email>" &
"<returnUrl>http://whatever2.com</returnUrl>" &
"<clientUserId>" & clientId & "</clientUserId>" &
"<userName>" & recipientName & "</userName>" &
"</recipientViewRequest>"
myRequest = initializeRequest(url, "POST", requestBody, username,
password, integratorKey)
myResponse = getResponseBody(myRequest)
Session("recipientViewUrl") = parseDataFromResponse(myResponse, "url")
两个url的使用都使用相同的信封ID。我是否需要一个完全独立的收件人查看请求信封?
如果是这样,在创建发件人查看请求后,是否有任何方法可以获取收件人视图的URL。我需要一个returnURL作为发送者视图,所以当用户完成它..我的应用程序标记我自己的数据库中的文件已经出去。我需要能够为收件人视图提供一个returnURL,所以一旦签名,我可以将我的应用程序记录签名。
加
是的,在首次创建信封时定义了clientUserId。 Embedded Sending page遗漏了一些东西。
它表示对于步骤3执行此操作:“获取DocuSign发件人视图”然后接收收件人视图URL ....但是在代码示例中,它实际上显示了如何/在何处获取该收件人视图URL。它只显示您必须获取SENDER VIEW URL以便标记和发送,但这是误导性的....您实际上并没有获得收件人视图URL。
此外,在获取收件人视图的最后一个请求中,我将recipientViewRequest更改为returnUrlRequest ...仍然没有... 400错误请求。
以下是创建信封时的原始xml正文:
"<envelopeDefinition xmlns=""docusign.com/restapi"">"; &
"<emailSubject>Test</emailSubject>" &
"<status>created</status>" &
"<documents>" &
"<document>" &
"<documentId>1</documentId>" &
"<name>" & documentName & "</name>" &
"</document>" &
"</documents>" &
"<recipients>" &
"<signers>" &
"<signer>" &
"<recipientId>1</recipientId>" &
"<clientUserId>" & clientId & "</clientUserId>" &
"<email>" & recipientEmail & "</email>" &
"<name>" & recipientName & "</name>" &
"<tabs>" &
"<signHereTabs>" &
"<signHere>" &
"<documentId>1</documentId>" &
"<pageNumber>1</pageNumber>" &
"</signHere>" &
"</signHereTabs>" &
"<dateSignedTabs>" &
"<dateSigned>" &
"<documentId>1</documentId>" &
"<pageNumber>1</pageNumber>" &
"<fontSize>Size12</fontSize>" &
"<underline>true</underline>" &
"<bold>true</bold>" &
"</dateSigned>" &
"</dateSignedTabs>" &
"</tabs>" &
"</signer>" &
"</signers>" &
"</recipients>" &
"</envelopeDefinition>"
我将其更改为“已发送”但仍然无法正常工作。 400 Bad Request - Brian Lorraine 23小时前
另一个奇怪的事情。请注意我在“文档”和“签名者”下如何拥有“文档”和“签名者”子元素。我用例子看到的所有人都遗漏了子元素,并将他们的签名者和文档信息直接放在“文档”和“签名者”之下,似乎对他们来说效果很好。
一旦我删除“document”和“signer”child elemnts并且只有(例如)“”,完全跳过“document”元素,docusign会抛出400 Bad请求。什么给?除了我以外,为什么其他人都能跳过这些子节点?
答案 0 :(得分:0)
感谢您的帮助。您的资源很有用。
但是我找到了问题的答案。这很简单。请注意我如何使用一个请求创建信封,然后获取发件人视图网址,然后在一个线性镜头中获取收件人视图网址?
我的问题是我只是在发件人视图控制台之前打开收件人视图控制台。咄!如果您尝试这样做,则还没有任何已发送的内容,因此它失败的原因。
基本上,在调试时,我停在senderviewurl并在另一个浏览器中打开它,添加标签并发送...然后继续调试。
一旦我停止调试并线性运行,它会尝试在sendviewviewurl打开之前获取recipviewurl,因此如果文档尚未发送,则没有收件人视图。
没有人能够知道这一点,但是我在这里把答案放在这里,以防将来有任何初学者遇到这种情况并开始撞墙。