如何从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
相关产品推荐
相关产品推荐

