Sub login_click(ByVal sender As Object, ByVal e As System.EventArgs)
'Dim oClient = New WebClient
Dim sUrl As String = "https://demo.docusign.net/restapi/v1/login_information?api_password=true&include_account_id_guid=true&login_settings=all"
Dim sEmail As String = "[email protected]"
Dim sPassword As String = "mypassword"
Dim sIntegratorKey As String = "myintegratorkey"
Dim sDocumentName As String = "mypdfdocument.pdf"
Dim sContentType As String = "application/pdf"
Dim oRequest As HttpWebRequest
oRequest = initializeRequest(sUrl, "GET", "", sEmail, sPassword, sIntegratorKey)
Dim oResponse As HttpWebResponse = oRequest.GetResponse
Dim baseURL As String = ""
Dim oStreamReader As StreamReader = New StreamReader(oResponse.GetResponseStream)
Dim sXML As String = oStreamReader.ReadToEnd
baseURL = parseDataFromResponse(sXML, "baseUrl")
Dim sXmlBody As String
sXmlBody = "<envelopeDefinition xmlns='http://www.docusign.com/restapi'>" & _
"<emailSubject>DocuSign API</emailSubject>" & _
"<status>sent</status>" & _
"<documents>" & _
"<document>" & _
"<documentId>1</documentId>" & _
"<name>" & sDocumentName & "</name>" & _
"</document>" & _
"</documents>" & _
"<recipients>" & _
"<signers>" & _
"<signer>" & _
"<recipientId>1</recipientId>" & _
"<email>[email protected]</email>" & _
"<name>John Smith</name>" & _
"<tabs>" & _
"<signHereTabs>" & _
"<signHere>" & _
"<xPosition>100</xPosition>" & _
"<yPosition>100</yPosition>" & _
"<documentId>1</documentId>" & _
"<pageNumber>1</pageNumber>" & _
"</signHere>" & _
"</signHereTabs>" & _
"</tabs>" & _
"</signer>" & _
"</signers>" & _
"</recipients>" & _
"</envelopeDefinition>"
sUrl = baseURL & "/envelopes"
oRequest = initializeRequest(sUrl, "POST", "", sEmail, sPassword, sIntegratorKey)
configureMultiPartFormDataRequest(oRequest, sXmlBody, sDocumentName, sContentType)
Dim sMessage As String
sMessage = getResponseBody(oRequest)
MsgBox(sMessage)
'Dim sUri As String = parseDataFromResponse(sXML, "uri")
End Sub
Function getResponseBody(ByRef oRequest As HttpWebRequest) As String
Dim oResponse As HttpWebResponse = oRequest.GetResponse
Dim oStreamReader As StreamReader = New StreamReader(oResponse.GetResponseStream)
Dim sResponseString As String = oStreamReader.ReadToEnd
Return (sResponseString)
End Function
Sub configureMultiPartFormDataRequest(ByRef oRequest As HttpWebRequest, sXmlBody As String, sDocumentName As String, sContentType As String)
oRequest.ContentType = "multipart/form-data; boundary=BOUNDARY"
Dim sRequestBodyStart As String = "\r\n\r\n--BOUNDARY\r\n" & _
"Content-Type: application/xml\r\n" & _
"Content-Disposition: form-data\r\n" & _
"\r\n" & _
sXmlBody & "\r\n\r\n--BOUNDARY\r\n" & _
"Content-Type: " & sContentType & "\r\n" & _
"Content-Disposition: file; filename='" & sDocumentName & "'; documentId=1\r\n" & _
"\r\n"
Dim sRequestBodyEnd As String = "\r\n--BOUNDARY--\r\n\r\n"
Dim oFileStream As FileStream = File.OpenRead(Server.MapPath(sDocumentName))
Dim bodyStart As Byte() = System.Text.Encoding.UTF8.GetBytes(sRequestBodyStart.ToString)
Dim bodyEnd As Byte() = System.Text.Encoding.UTF8.GetBytes(sRequestBodyEnd.ToString)
Dim oDataStream As Stream = oRequest.GetRequestStream
oDataStream.Write(bodyStart, 0, sRequestBodyStart.ToString.Length())
Dim buffer(4096) As Byte
Dim iLen As Integer = 0
iLen = oFileStream.Read(buffer, 0, 4096)
Do While iLen > 0
oDataStream.Write(buffer, 0, iLen)
iLen = oFileStream.Read(buffer, 0, 4096)
Loop
oDataStream.Write(bodyEnd, 0, sRequestBodyEnd.ToString.Length())
oDataStream.Close()
End Sub
Function initializeRequest(sUrl As String, sMethod As String, sBody As String, sEmail As String, sPassword As String, sIntegratorKey As String) As HttpWebRequest
Dim oRequest As HttpWebRequest
oRequest = WebRequest.Create(sUrl)
oRequest.KeepAlive = False
oRequest.Method = sMethod
AddRequestHeaders(oRequest, sEmail, sPassword, sIntegratorKey)
If sBody <> "" Then
AddRequestBody(oRequest, sBody)
End If
Return (oRequest)
End Function
Sub AddRequestHeaders(ByRef oRequest As HttpWebRequest, sEmail As String, sPassword As String, sIntegratorKey As String)
oRequest.Headers.Add("X-DocuSign-Authentication",
String.Format("<DocuSignCredentials><Username>{0}</Username><Password>{1}</Password><IntegratorKey>{2}</IntegratorKey></DocuSignCredentials>", sEmail, sPassword, sIntegratorKey))
oRequest.Accept = "application/xml"
oRequest.ContentType = "application/xml"
End Sub
Sub addRequestBody(ByRef oRequest As HttpWebRequest, sRequestBody As String)
Dim body As Byte() = System.Text.Encoding.UTF8.GetBytes(sRequestBody)
Dim oDataStream As Stream = oRequest.GetRequestStream
oDataStream.Write(body, 0, sRequestBody.Length)
oDataStream.Close()
End Sub
Function parseDataFromResponse(sXML As String, sSearchToken As String) As String
Dim oXmlReader As XmlReader = XmlReader.Create(New StringReader(sXML))
Do While oXmlReader.Read()
If oXmlReader.NodeType = XmlNodeType.Element And oXmlReader.Name = sSearchToken Then
Return oXmlReader.ReadString()
End If
Loop
Return ""
End Function
прочитал это его может быть полезной HTTP: //www.codeproject. com/Статьи/14488/E-sign-PDF-documents-with-iTextSharp –
У меня есть код в формате PDF, который работает в настоящее время. PDF-файл просто нуждается в цифровой подписи docusign. Мне нужен спокойный код api для отправки PDF. –
Я прочитал проект кода, и это было не то, что я хочу. Я не хочу добавлять подписанную подпись в pdf через stamper. Я хочу отправить PDF-документ docusign, который был отмечен для получателя, чтобы цифровой знак, используя облако docusign. –