asp.net - 文档签名 : Get recipient view URl after creating sender envelope

标签 asp.net vb.net-2010 docusignapi

我正在尝试使用 Docusign API 创建信封以获取上传文档的发件人 View ,然后获取收件人 View 。

发送方部分工作正常。我使用所有信息创建了请求,并且能够发送文档并在控制台中打开它并添加我的签名选项卡。

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 并创建了信封。接下来的几行代码我希望能够从收件人 View 获取 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。我是否需要一个完全独立的信封来处理收件人查看请求?

如果是这样,在创建发件人 View 请求后,是否有任何方法可以获取收件人 View 的 URL。我需要一个用于发件人 View 的 returnURL,以便当用户完成它时..我的应用程序将我自己的数据库中的文档标记为已出去。我还需要能够为recipientview提供一个returnURL,这样一旦签名,我就可以让我的应用程序记录它已被签名。

已添加

是的,clientUserId 是在首次创建信封时定义的。 Embedded Sending page缺少一些东西。

它说第 3 步执行以下操作:“获取 DocuSign 发件人 View ”,然后接收收件人 View URL...但代码示例中没有任何地方实际显示如何/在哪里获取收件人 View URL。它仅表明您必须获取发件人 View URL,以便可以标记和发送,但这具有误导性......您实际上并未获取收件人 View URL。

另外,在获取收件人 View 的最后一个请求中,我将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 错误请求 – Brian Lorraine 23 小时前

又一件奇怪的事情。请注意,在“文档”和“签名者”下,我有“文档”和“签名者”子元素。我看到的示例中的每个人都省略了子元素,并将其签名者和文档信息直接放在“文档”和“签名者”下,这似乎对他们来说效果很好。

一旦我删除“document”和“signer”子元素并且只有(例如)“”,完全跳过“document”元素,docusign 就会抛出 400 Bad 请求。给什么?为什么除了我之外其他人都可以跳过这些子节点?

最佳答案

I'm trying to use the DocuSign API to create an envelope to get the sender view for an uploaded document, and then afterwards, get the recipient view.

恭喜您使用 API 发起信封并向您的发件人提供发件人 View 。发件人 View 支持文档标记。发送者完成后,她可以发送文档进行签名。

嵌入式签名与嵌入式发送完全不同。嵌入式签名是不同工作流程的一部分。您可能需要也可能不需要它。

当您拥有对人员进行身份验证的 Web 应用程序时,将使用嵌入式签名(也称为“收件人 View ”)。签名者对自己进行身份验证后,Web 应用程序可以提供嵌入式签名 View 以使签名者能够签署文档。

要签名的文档可能已存在(正在等待签名)。或者,文档可以由应用程序即时创建,然后立即在应用程序内签名。

要使用嵌入式签名,请参阅 Embedded Signing walk-through 。这是与嵌入式发送不同的演练,因为这两个操作完全不同。

请注意,返回到您的应用程序的嵌入式签名 URL 在生成后需要立即使用。这是有时间限制的。因此,您必须仅在签名者准备好签名时生成嵌入式签名 URL。

另请注意 Recipient View methodEmbedded Signer 以来已更新写了步行。计划对演练进行更新。但同时请注意,应该或必须设置以下属性才能正确检索收件人查看 URL:

authenticationMethod 这是您的网络应用对签名者进行身份验证的方式。例如“合作伙伴网站用户”或“Project X 网站用户”。

assertionId 这可能是签名者在您网站上的用户名或用户 ID。

authenticationInstant您的网站何时对签名者进行身份验证?

Details on the above parameters .

以上三个属性用于记录您用来确保签名者真实身份的身份验证方法。一些信息被添加到信封的完成证书中并存储所有信息。

如果签名者稍后尝试否认她的签名,则该信息将用于反驳否认。

关于asp.net - 文档签名 : Get recipient view URl after creating sender envelope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174943/

相关文章:

asp.net - 如何使用 VB 将数据库表中的下拉列表数据绑定(bind)到 gridview 中?

vb.net - 如何压缩vb.net 2.0中的文件夹及其子文件夹?

docusignapi - Docusign Connect 服务 - 信封作废日期

docusignapi - Docusign - 更改已完成签名通知电子邮件消息/简介

ASP.NET MVC - 用于编辑的 ViewModel

c# - 编译错误-您是否缺少using指令或程序集引用?

browser - 用于处理应用程序中弹出窗口的 Web 浏览器

docusignapi - 文档签名 : create envelope with recipient custom field

c# - 在 .cshtml 页面中发送和接收数据

linq-to-sql - 如何通过 LINQ to SQL 在存储过程中使用临时表