DocuSign:创建发件人信封

时间:2015-08-24 05:24:17

标签: asp.net vb.net-2010 docusignapi

我正在尝试使用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请求。什么给?除了我以外,为什么其他人都能跳过这些子节点?

1 个答案:

答案 0 :(得分:0)

感谢您的帮助。您的资源很有用。

但是我找到了问题的答案。这很简单。请注意我如何使用一个请求创建信封,然后获取发件人视图网址,然后在一个线性镜头中获取收件人视图网址?

我的问题是我只是在发件人视图控制台之前打开收件人视图控制台。咄!如果您尝试这样做,则还没有任何已发送的内容,因此它失败的原因。

基本上,在调试时,我停在senderviewurl并在另一个浏览器中打开它,添加标签并发送...然后继续调试。

一旦我停止调试并线性运行,它会尝试在sendviewviewurl打开之前获取recipviewurl,因此如果文档尚未发送,则没有收件人视图。

没有人能够知道这一点,但是我在这里把答案放在这里,以防将来有任何初学者遇到这种情况并开始撞墙。