当前位置: 首页 > 知识库问答 >
问题:

使用Rest api在Docuign中正确接收信封

谢裕
2023-03-14

我正在更改特定信封的签名人,方法是使用以下代码更新收件人的签名,该代码工作正常

 EnvelopesApi envelopeApi = new EnvelopesApi();
                                var options = new EnvelopesApi.UpdateRecipientsOptions()
                                {
                                    resendEnvelope = "true",
                                    //offlineSigning="true"
                                };
                                Signer signerobj = new Signer
                                {
                                    Email = handoverOwnerEmail,
                                    Name = handoverOwnerName,
                                    RecipientId = "1",
                                    RoutingOrder = "1",

                                };
                                CarbonCopy carbonCopyobj = new CarbonCopy
                                {
                                    RecipientId = removesigner.recipientId,
                                    Name = removesigner.name,
                                    Email = removesigner.email,
                                };
                                Recipients objrecipients = new Recipients
                                {
                                    Signers = new List<Signer>() { signerobj },
                                    CarbonCopies = new List<CarbonCopy> { carbonCopyobj }
                                };
                                RecipientsUpdateSummary result1 = envelopeApi.UpdateRecipients(accoutnId, folderitem.envelopeId, objrecipients, options);

是否可以使用rest API获取故障状态信封并更新收件人电子邮件。

我想我们可以得到失败的信封,并用有效的收件人电子邮件更新收件人的

共有2个答案

柳胜
2023-03-14

如果收件人的电子邮件地址导致自动回复电子邮件,Connect可以向您发送webhook通知。我认为这是导致故障通知的错误。

我怀疑一个错误的电子邮件地址是否会立即导致故障状态。相反,DocuSign尝试发送到提供的电子邮件地址,如果发送失败并返回到DocuSign的电子邮件错误,则您会看到失败状态。

您还可以使用信封::get、信封::listStatus或信封::listStatusChanges查看错误

更新:检查收件人的状态,查看是否有任何收件人具有自动响应状态。

由于电子邮件寻址错误是异步检测到的,因此连接(或特定信封的eventNotification)是最好的方式。否则,您需要轮询状态更改。

曹昊焱
2023-03-14

我们有一个自动检查被退回电子邮件的工作。以下是使用XML的代码:

  strURL = DocuSign_Get_AcctInfo
  If strURL = "" Then
    GoTo Exit_StdExit
  End If

  strURLGetSent = strURL & "/envelopes?from_date=" & strFromDate & "&status=sent"

  Set XDoc = CreateObject("MSXML2.DOMDocument.6.0")
  XDoc.SetProperty "SelectionLanguage", "XPath"
  XDoc.SetProperty "SelectionNamespaces", "xmlns:r='http://www.docusign.com/restapi' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'"
  XDoc.async = False
  XDoc.validateOnParse = True

  With DocEnv
    .Open "GET", strURLGetSent, False
    .setRequestHeader "Content-Type", "application/xml"
    .setRequestHeader "Accept", "application/xml"
    .setRequestHeader "X-DocuSign-Authentication", "<DocuSignCredentials><Username>" + strUsrNm + "</Username><Password>" + strPssWrd + "</Password><IntegratorKey>" + strKey + "</IntegratorKey></DocuSignCredentials>"
    .Send
    XDoc.LoadXML (PrettyPrintXml(.responseText))
  End With
'  XDoc.Save ("U:\data\DocuSign\notsigned.xml")

  If XDoc.parseError <> 0 Then
    MsgBox "Invalid XML!" & vbCrLf & vbCrLf & XDoc.parseError.reason
    GoTo Exit_StdExit
  End If

  lngRcrdCnt = XDoc.SelectSingleNode("//r:resultSetSize").Text
  If lngRcrdCnt = 0 Then
    Email_Bounced = True  'query worked but returned no records
    GoTo Exit_StdExit
  End If
  ReDim AcctID(lngRcrdCnt - 1)
  lngIdx = 0
  'loop through the collection of nodes to capture the envelopeID
  Set XNodes = XDoc.SelectNodes("//r:*")
  For Each XNode In XNodes
    If XNode.nodeName = "envelopeID" Then
      AcctID(lngIdx) = XNode.Text
      lngIdx = lngIdx + 1
    End If
  Next XNode

  For lngIdx = 0 To lngRcrdCnt - 1
    strURLGetBounce = strURL & "/envelopes/" & AcctID(lngIdx) & "/recipients"
    Set responseDoc = CreateObject("MSXML2.DOMDocument.6.0")
    responseDoc.SetProperty "SelectionLanguage", "XPath"
    responseDoc.SetProperty "SelectionNamespaces", "xmlns:r='http://www.docusign.com/restapi' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'"
    responseDoc.async = False
    responseDoc.validateOnParse = True
    With DocRecip
      .Open "GET", strURLGetBounce, False
      .setRequestHeader "Content-Type", "application/xml"
      .setRequestHeader "Accept", "application/xml"
      .setRequestHeader "X-DocuSign-Authentication", "<DocuSignCredentials><Username>" + strUsrNm + "</Username><Password>" + strPssWrd + "</Password><IntegratorKey>" + strKey + "</IntegratorKey></DocuSignCredentials>"
      .Send
      responseDoc.LoadXML (PrettyPrintXml(.responseText))
    End With

    Set XNodes = responseDoc.SelectNodes("//r:errorCode")
    For Each XNode In XNodes
      MsgBox "The following error has occurred: " & XNode.Text & vbCrLf & vbCrLf & "See file U:\data\DocuSign_PutResponseError.xml" & " for more info"
      GoTo Exit_StdExit
    Next XNode

    If responseDoc.SelectSingleNode("//r:status").Text = "autoresponded" Then
    'this call sets the values for lngPrsnID, lngFctyApptAID
      Call DocuSign_Get_CustomFlds(strURL & "/envelopes/" & AcctID(lngIdx) & "/custom_Fields", lngPrsnID, lngFctyApptAID)
      strEmail = responseDoc.SelectSingleNode("//r:email").Text
      modConnection.OpenADODBConnection.Execute ("insert into _FctyLtrsEmlBounce(lngPrsnID, lngFctyApptAID, strEmlDocuSign) values(" & lngPrsnID & ", " & lngFctyApptAID & ", '" & strEmail & "')")
    End If
  Next lngIdx
''''
 类似资料:
  • 我刚刚开始使用Spring,我正在尝试在rest控制器中接收一个表单urlencoded POST body,但我一生都无法让它工作。这是我的“Hello World”式控制器: 我尝试了许多不同的变体,都有不同的错误。当从Postman接收到带有“text”参数的POST请求时,上面的特定配置会产生以下错误。 我看过许多其他关于这个主题的stackoverflow帖子,并试图实现它们的各种解决方

  • 在 OpenResty 中,连接池在使用上如果不加以注意,容易产生数据写错地方,或者得到的应答数据异常以及类似的问题,当然使用短连接可以规避这样的问题,但是在一些企业用户环境下,短连接 + 高并发对企业内部的防火墙是一个巨大的考验,因此,长连接自有其用武之地,使用它的时候要记住,长连接一定要保持其连接池中所有连接的正确性。 -- 错误的代码 local function send() fo

  • 问题内容: 我尝试在我的应用中收到短信,并且确定问题出在我的AndroidManifest.xml文件中 我的SmsReceive.java就是这样 我确定我的问题出在manifest.xml中,因为 什么都不显示 我该怎么办 ? 编辑:正如我们的朋友所说的,我曾经用过 在我的函数中,但LogCat中什么也不会显示,所以我断然确定我的问题出在我的AndroidManifest.xml注意:我在HT

  • 出于某种原因(我不是很好与Spock和新的嘲笑和攻击),我不能得到一个特定的方法来存根与我想要的。 我已经缩短了一些内容,但基本上我有一个从搜索中返回的书籍列表。每本书都有一个。这本书可能有较旧或较新的版本,但它们都具有相同的--如果用户选择,他们可以获取所有其他版本。 类别:版本 class:用于获取单个作品的附加版本的EditionResults 特别是,我在测试--出于某种原因,我一直收到的

  • 问题内容: 我当时正在收集有关flush()方法的信息,但是我不清楚何时使用它以及如何正确使用它。从我的阅读中,我的理解是持久性上下文的内容将与数据库同步,即发布未完成的语句或刷新实体数据。 现在,我得到了具有两个实体的场景,并且(一对一关系,但未由JPA强制执行或建模)。具有手动设置的复合PK,还具有自动生成的IDENTITY字段。这应该作为的外键写入到实体。我要存钱,并且要进行一次交易。问题是