Я использую vb.net (4.0) для взаимодействия с DocuSign API. Я пытаюсь сделать процесс, который позволяет пользователю добавлять 30 дней к текущей дате истечения срока действия вместо входа в DocuSign.net для исправления конверта. Код, кажется, работает нормально (не вызывает никаких ошибок), но коррекция не происходит на стороне DocuSign.Обновление API-интерфейса DocuSign SOAP (правильно) Срок действия конверта
Me.EnvelopeID является ID конверта
DocuService это пространство имен Service Reference DocuSign API.
Me.AuthorizationString - это имя пользователя, пароль, аккаунт и ключ Integrator для отправки в виде заголовков HTTP.
Private Sub UpdateExpiration()
'Get envelope details
Dim orig As DocuService.Envelope = ExecuteSoap(Function(client) client.RequestEnvelope(Me.EnvelopeID, False), Me.AuthorizationString)
Dim cor As New DocuService.Correction
cor.EnvelopeID = Me.EnvelopeID
cor.Reminders = orig.Notification.Reminders
cor.Expirations = orig.Notification.Expirations
cor.Expirations.ExpireAfter = (Integer.Parse(orig.Notification.Expirations.ExpireAfter) + 30)
'Execute Correction
Dim cord As DocuService.CorrectionStatus = Me.ExecuteSoap(Function(client) client.CorrectAndResendEnvelope(cor), Me.AuthorizationString)
'If I add a break point on the next line and check the values of cord,
'there is a returned CorrectionStatus object but every property in the object is "Nothing"
Dim check As DocuService.Envelope = ExecuteSoap(Function(client) client.RequestEnvelope(Me.EnvelopeID, False), Me.AuthorizationString)
Console.WriteLine(check.Notification.Expirations.ExpireAfter & " " & (Integer.Parse(orig.Notification.Expirations.ExpireAfter) + 30))
If check.Notification.Expirations.ExpireAfter = (Integer.Parse(orig.Notification.Expirations.ExpireAfter)) Then
'Success :)
MsgBox("success!")
Else
'Failure :(
MsgBox("failure!")
End If
End Sub
Private Function ExecuteSoap(Of TResult)(func As Func(Of DSAPIServiceSoapClient, TResult), authorizationString As String) As TResult
Using client As New DocuService.DSAPIServiceSoapClient(My.Settings.DocusignMode)
Using scope As OperationContextScope = New System.ServiceModel.OperationContextScope(client.InnerChannel)
Dim hp As HttpRequestMessageProperty = New HttpRequestMessageProperty
hp.Headers.Add("X-Docusign-Authentication", authorizationString)
OperationContext.Current.OutgoingMessageProperties(HttpRequestMessageProperty.Name) = hp
Return If(func IsNot Nothing, func(client), Nothing)
End Using
End Using
End Function
Мы используем ту же самую функцию ExecuteSOAP и AuthorizationString создать & отправить конверты и делать получатель обновлений, так что я знаю, это правильно. Я не уверен, что случилось!
Спасибо, я получил еще один проект на неделю или две, но я скоро вернусь к этому. –