如何通过DocuSign eSign API获取带完整签署选项的signing_url
如何通过DocuSign eSign API获取包含完整签署选项的签名链接
问题背景
需要通过DocuSign eSign API获取与邮件发送的签署链接功能完全一致的signing_url,要求包含签名、首字母缩写(initials)、印章(stamp)等所有DocuSign签署选项。但调用envelopes_api.create_recipient_view接口时,返回的URL格式为https://demo.docusign.net/Signing/MTRedeem/v1.....,缺少上述签署选项;而邮件中的签署链接格式为https://demo.docusign.net/Signing/?ti=6273ff8731f541....,具备完整签署功能。
问题原因
生成简化版链接是因为你的RecipientViewRequest缺少关键参数:client_user_id。这个参数是嵌入式签署的核心标识,未设置时DocuSign会默认返回简化流程的链接。另外,仅传入用户名字可能导致页面显示异常。
解决方案
修改RecipientViewRequest配置,添加以下关键参数:
client_user_id:设置一个唯一值(比如用户ID字符串),用于标识当前签署用户- 完整
user_name:传入用户全名(名+姓),确保签署页面显示正常
修改后的代码
def signed_document_view_url(envelope_id = nil) envelope_id = envelope_id || get_envelope_id return nil if envelope_id.nil? begin recipient_view_request = DocuSign_eSign::RecipientViewRequest.new recipient_view_request.return_url = @config[:return_url] recipient_view_request.authentication_method = 'None' recipient_view_request.email = @user.email recipient_view_request.user_name = "#{@user.first_name} #{@user.last_name}" # 使用用户全名 recipient_view_request.client_user_id = @user.id.to_s # 添加唯一的client_user_id view_url = envelope_api_obj.create_recipient_view(@config[:account_id], envelope_id, recipient_view_request) view_url[:url] rescue => e return nil end end
说明
添加client_user_id后,DocuSign会生成与邮件链接结构一致的完整签署URL,包含所有默认签署工具选项。这个参数确保用户进入标准签署流程,而非简化的快速签署流程。
内容的提问来源于stack exchange,提问作者Vivek gautam
相关产品推荐
相关产品推荐

