【问题标题】:Struggling to regenerate the new signing URL for docusign努力为 docusign 重新生成新的签名 URL
【发布时间】:2023-04-03 02:15:01
【问题描述】:

我正在尝试在我们的网络应用程序中实现 DocuSign 嵌入式签名功能。我已经能够在应用程序中实现如下一般流程:

  • 用户创建一个信封并将其发送给所有签名者。
  • 其帐户中的收件人可以单击签名链接以签署文件。

我在这里面临的关键问题是签名链接在 5 分钟后过期。

根据 DocuSign 文档,我尝试重新生成签名 URL,如下所示:

from docusign_esign import ApiClient, EnvelopesApi, RecipientViewRequest

def generate_new_signing_url(request, document_signer):
    api_client = ApiClient()
    api_client.host = DOCUSIGN_URL
    api_client.set_default_header("Authorization", "Bearer " + ACCESS_TOKEN)
    #ACCESS_TOKEN is retrieved from the session variable

    envelope_api = EnvelopesApi(api_client)

    recipient_view_request = RecipientViewRequest(
        authentication_method='None',
        client_user_id=CLIENT_USER_ID,
        recipient_id=RECIPIENT_ID,
        return_url=RETURN_URL,
        user_name=FULL_NAME,
        email=EMAIL
    )

    response = envelope_api.create_recipient_view(ACCOUNT_ID, 
     ENVELOP_ID,recipient_view_request=recipient_view_request)
    # We store the ENVELOP_ID in the database when it's created for the first time and use it to regenerate the URL

    return response.url

关键问题是上述代码仅在原始创建者而不是签名者调用此代码时才有效。而理想的情况应该是当链接在签名者端过期时,应该为他们提供一个新的 URL 来签署文档。

有人遇到过类似的问题吗?请帮忙。

【问题讨论】:

  • 您使用的是嵌入式签名还是远程签名?您生成的网址是如何使用的?用户是否收到带有链接的电子邮件?
  • 我正在使用嵌入式签名。我们通知应用程序内的用户对 URL 进行签名,并在签名后将他们重定向回应用程序并记录响应。
  • 抱歉,我还是一头雾水。您是否将嵌入式签名 URL 提供给用户?或者它是在应用程序中实时生成的,用户甚至不需要知道它?如果您实时创建它,您需要处理一个过期的 url,这似乎很奇怪
  • 从技术上讲,我们生成 URL 并提供它们。它不会实时发生,因此当 URL 超过 5 分钟时,它就会过期,并且签名者无法创建新 URL。
  • 你如何“给他们”是我很好奇的?

标签: docusignapi


【解决方案1】:

正如您所指出的,签字仪式网址仅适用于 5 分钟。因此,它必须在签名者的浏览器被重定向到签名仪式 url 之前立即生成。

您不应将签字仪式的网址提供给签字人点击。相反,您应该始终:

  1. 从DocuSign获取签约仪式网址
  2. 将签名者的浏览器重定向到 url

延迟嵌入式签字仪式

  1. 为一位或多位嵌入式签名者创建信封。 (为收件人设置 clientUserId 属性)
  2. 在您自己的安全数​​据库中,为每个延迟签名者创建一行:

    列:

    1. 信封ID
    2. 收件人姓名
    3. 收件人的电子邮件
    4. 收件人的clientUserId
    5. guid(此签名者和此信封的唯一标识符)
  3. 将 guid 发送给稍后将使用嵌入式签名仪式的签名者。将其用作查询参数。例如:myapp.company.com?signingguid=1234

(稍后)

  1. 签名者将点击网址
  2. 您的应用将在其表格中查找 guid
  3. 您的应用使用表的属性向 DocuSign 请求签字仪式 url
  4. 您的应用会将签名者的浏览器重定向到签名仪式的 url。
  5. 签名者签名后,签名者会被重定向回您的应用。
  6. 完成!

您的应用用于创建签名仪式 URL 的访问令牌可能需要代表信封的发件人(我不确定)或管理员。无论哪种方式,您的应用都可以使用 JWT 授权流程来模拟该 DocuSign 用户。

签名者本身不需要 DocuSign 用户帐户。

信息安全

  1. 在您发送给签名者的 URL 中使用 guid 或其他随机字符串。您不希望这些网址是可猜测的!
  2. 考虑如何验证签名者的身份。您可以让 DocuSign 在签名仪式中要求提供其他信息,或者您可以检查应用的会话信息以确保签名者也已通过身份验证(登录)到您的应用程序。

【讨论】:

  • 我将尝试这种方法。您能否在官方文档中给我一些指示,看看签名者是否可以从他们的访问令牌中请求签名 URL?
猜你喜欢
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 2021-09-16
  • 1970-01-01
  • 2021-12-15
  • 2021-11-23
  • 1970-01-01
相关资源
最近更新 更多