You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从DocuSign EnvelopesApi获取拒签原因?

获取DocuSign EnvelopesApi拒签原因的解决方案

我能通过AccessToken和EnvelopeID调用EnvelopesApi获取信封的作废(Voided)原因,但无法获取拒签(Declined)的详细信息。以下是我获取作废原因的代码,恳请指导如何从EnvelopesApi获取拒签详情:

Dim apiClient = New ApiClient(Accesstoken(3) & ":" & Accesstoken(4))
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " & Accesstoken(1))
Dim envelopesApi = New EnvelopesApi(apiClient)

Dim results As Envelope = envelopesApi.GetEnvelope(Accesstoken(2), EnvelopID)

Dim status As String = results.Status.ToString
Dim strReason As String = ""

If status = "sent" Then
    strReason = ""
ElseIf status = "completed" Then
    strReason = ""
ElseIf status = "voided" Then
    strReason = results.VoidedReason.ToString()
ElseIf status = "declined" Then
   ' strReason = results.VoidedReason.ToString()  ' Here i want to get declined reason
End If

解决方案

当信封状态为declined时,拒签原因并非存储在Envelope对象的顶层属性中,而是关联到执行拒签操作的具体收件人。你需要遍历信封的收件人集合,找到状态为declined的收件人,进而获取其拒签原因:

修改declined分支的代码如下:

ElseIf status = "declined" Then
    ' 遍历签署人集合,查找拒签的收件人
    For Each signer In results.Recipients.Signers
        If signer.Status.Equals("declined", StringComparison.OrdinalIgnoreCase) Then
            strReason = signer.DeclinedReason
            Exit For ' 若存在多个拒签收件人,可根据业务需求调整是否继续遍历
        End If
    Next
    
    ' 若需要覆盖其他类型收件人(如审批人),可添加对应集合的遍历
    ' For Each approver In results.Recipients.Approvers
    '     If approver.Status.Equals("declined", StringComparison.OrdinalIgnoreCase) Then
    '         strReason = approver.DeclinedReason
    '         Exit For
    '     End If
    ' Next
End If

说明

  • DocuSign中,拒签操作由单个收件人触发,因此原因会绑定到该收件人的属性上,而非信封顶层。
  • 除了Signers(签署人),若业务场景包含其他类型收件人(如Approvers审批人、CarbonCopies抄送人等),可根据需要遍历对应集合来获取拒签原因。

内容的提问来源于stack exchange,提问作者aravindb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:22:38