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를하지만 C#을 로컬 파일에 서명을 요청 특히이 예 예 (다른 .NET 기술)가있다. co.kr/Articles/14488/전자 서명 - PDF 문서와 iTextSharp –
현재 PDF 스탬퍼 코드가 작동하고 있습니다. PDF는 docusign의 디지털 서명 만 있으면됩니다. 나는 pdf를 보내기위한 편안한 API 코드가 필요하다. –
나는 코드 프로젝트를 읽고 그것이 내가 원하는 것이 아니었다. 나는 스탬퍼를 통해 pdf에 서명 된 서명을 추가하고 싶지 않습니다. docusign 클라우드를 사용하여 디지털 서명하기 위해 수신자에게 스탬프 처리 된 docusign pdf를 보내고 싶습니다. –