Исправьте получателя для конверта в Docusign, используя Rest api - PullRequest
0 голосов
/ 17 июня 2019

Я меняю подписывающего для конкретного конверта, обновляя получателя, используя приведенный ниже код, который работал нормально

 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);

Приведенный выше код возвращает одинаковый статус как для действительного, так и для неправильного электронного письма.Если я предоставляю недействительный адрес электронной почты, состояние конверта в отправленных элементах становится Отказом, как показано на изображении ниже enter image description here.Если мы войдем в Docusign, у нас будет возможность исправить данные получателя.

Можно ли получить конверты с ошибками и обновить адрес электронной почты получателя с помощью API остальных?

Я думаю, что мы можем получить конверты с ошибками и обновим получателя действительным получателем.электронные письма

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

У нас есть автоматизированная работа, которая проверяет наличие отклоненных писем.Вот код, использующий 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
''''
0 голосов
/ 17 июня 2019

Connect может отправить вам уведомление о подключении через Интернет, если адрес электронной почты получателя приведет к сообщению autoresponded. Я думаю, что это ошибка, которая приводит к уведомлению Failure.

Я сомневаюсь, что неправильный адрес электронной почты немедленно приводит к статусу Failure. Вместо этого DocuSign пытается отправить на указанный адрес электронной почты, и если при отправке происходит сбой с ошибкой электронной почты обратно в DocuSign, вы видите состояние «Сбой».

Вы также можете увидеть ошибки, используя Конверты :: get , Конверты :: listStatus или Конверты :: listStatusChanges

Обновление : проверьте статусы recipient, чтобы узнать, имеет ли кто-либо из получателей статус autoresponded.

Поскольку ошибки адресации электронной почты обнаруживаются асинхронно, лучше всего использовать Connect (или eventNotification для определенного конверта). В противном случае вам нужно будет опросить изменения статуса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...