DocuSign收件人签名URL过期

时间:2020-06-18 10:47:24

标签: docusignapi

我需要将DocuSign添加到我的聊天应用程序(iOS,Android,Windows)中,以便要求向所有聊天组成员签名文档。

我想在没有Server实现的情况下实现DocuSign签名流程:仅Sender and Recipients客户端实现(可能吗?)。

我想象中的流量:

  • 经过身份验证的发件人使用Envelopes: create REST调用创建信封。
  • 其他成员必须签署文档(不需要DocuSign帐户)...
  • ...所以我需要使用REST调用EnvelopeViews: createRecipient(谁叫这个端点?)为每个成员生成一个“收件人url”

我在Postman上测试了此流程,并提出了一些问题:

  1. EnvelopeViews: createRecipient需要X-DocuSign-Authentication标头,因此必须从发件人方调用此请求吗?
  2. EnvelopeViews: createRecipient返回只能使用一次的网址,为什么?第二次使用此网址时,我得到404作为响应。

所以我注意到收件人不能两次使用发件人提供的url,但是他不能每次都生成新的URL,因为它未经身份验证(没有X-DocuSign-Authentication)。 / p>

如何正确实施此流程?

2 个答案:

答案 0 :(得分:1)

很多好的问题:

EnvelopeViews:createRecipient需要X-DocuSign-Authentication标头,因此必须从发件人方调用此请求,对吗?

  1. 请勿使用X-DocuSign-Authentication标头。这是“旧版身份验证”,DocuSign不为新的REST eSignature应用程序支持它。而是使用OAuth。可能是OAuth JWT授权流程,因为该流程使您的应用程序可以在不存在的情况下模拟 DocuSign用户(例如发件人)。

  2. 您可以从服务器或浏览器应用程序调用EnvelopeViews:createRecipient。如果您是从浏览器拨打电话,则需要实现一个专用的CORS网关。

  3. 无论哪种方式,当签名者准备签名时,都可以从EnvelopeViews获取签名仪式URL:createRecipient API调用,然后将签名者的浏览器重定向到该URL。

EnvelopeViews:createRecipient返回只能使用一次的网址,为什么?

出于安全原因。这是我们信息安全架构的一部分。签字仪式URL不仅只能使用一次,而且时间有限。从DocuSign收到后,应在一两分钟之内使用它。它会在创建后的5分钟后失效。

第二次使用此URL时,我得到404作为响应。

是的,这是按设计的。您获得URL,然后立即将签名者重定向到URL。然后他们签名。然后将它们重定向回您的应用程序。

如果您想向签名者提供URL,以供签名者以后使用,则可以自己实现该流程。我已经在其他答案中进行了介绍。

所以我注意到收件人不能两次使用发件人提供的url,但是他不能每次都生成新的URL,因为它未经身份验证(没有X-DocuSign-Authentication)。 / p>

如何正确实施此流程?

您快到了。在您的应用程序中实现JWT授权流程。这样,即使发件人不在身边,您的应用也可以模拟发件人。当签名者想要签名时,您的应用会从DocuSign获取签名仪式URL,然后重定向以启用签名。

另一种可行的替代方法是使发件人使用标准的OAuth授权代码授予来登录DocuSign。这为您的应用程序提供了访问令牌和刷新令牌。

您的应用允许发送者使用访问令牌发送信封。

稍后,当签名者想要签名时,您的应用程序将使用其存储的刷新令牌来生成新的访问令牌。将访问令牌与EnvelopeViews:createRecipient API方法一起使用,以获取签名仪式URL。

答案 1 :(得分:0)

  1. X-DocuSign-Authentication标头是旧式身份验证,请不要使用它,因为它不如现代OAauth安全。
  2. 再次保证安全。每当您希望有人签名您的代码时,都应生成URL。另外,请注意,您不能生成两个URL。一次只有一个有效。您需要您的应用程序具有一定的逻辑,以确保只有一个用户在签名,并且仅在该时间点生成URL。