我需要将DocuSign添加到我的聊天应用程序(iOS,Android,Windows)中,以便要求向所有聊天组成员签名文档。
我想在没有Server实现的情况下实现DocuSign签名流程:仅Sender and Recipients客户端实现(可能吗?)。
我想象中的流量:
Envelopes: create
REST调用创建信封。 EnvelopeViews: createRecipient
(谁叫这个端点?)为每个成员生成一个“收件人url” 我在Postman上测试了此流程,并提出了一些问题:
EnvelopeViews: createRecipient
需要X-DocuSign-Authentication标头,因此必须从发件人方调用此请求吗?EnvelopeViews: createRecipient
返回只能使用一次的网址,为什么?第二次使用此网址时,我得到404作为响应。所以我注意到收件人不能两次使用发件人提供的url,但是他不能每次都生成新的URL,因为它未经身份验证(没有X-DocuSign-Authentication)。 / p>
如何正确实施此流程?
答案 0 :(得分:1)
很多好的问题:
EnvelopeViews:createRecipient需要X-DocuSign-Authentication标头,因此必须从发件人方调用此请求,对吗?
请勿使用X-DocuSign-Authentication
标头。这是“旧版身份验证”,DocuSign不为新的REST eSignature应用程序支持它。而是使用OAuth。可能是OAuth JWT授权流程,因为该流程使您的应用程序可以在不存在的情况下模拟 DocuSign用户(例如发件人)。
您可以从服务器或浏览器应用程序调用EnvelopeViews:createRecipient。如果您是从浏览器拨打电话,则需要实现一个专用的CORS网关。
无论哪种方式,当签名者准备签名时,都可以从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)