Lianja
Lianja
Send DocuSign XML Request
See more HTTP Misc Examples
Demonstrates how to send a DocuSign XML request.Chilkat Lianja Downloads
llSuccess = .F.
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loReq = createobject("CkHttpRequest")
loReq.HttpVerb = "POST"
// Replace "12999999" with your own account number. (12999999 is a ficticious account number)
loReq.Path = "/restapi/v2/accounts/12999999/envelopes"
loReq.AddHeader("Accept","application/xml")
// Don't worry about the boundary string. Chilkat will automatically generate one and include it.
loReq.ContentType = "multipart/form-data"
loXmlCred = createobject("CkXml")
loXmlCred.Tag = "DocuSignCredentials"
loXmlCred.UpdateChildContent("Username","YOUR_DOCUSIGN_USERNAME")
loXmlCred.UpdateChildContent("Password","YOUR_DOCUSIGN_PASSWORD")
loXmlCred.UpdateChildContent("IntegratorKey","ABCD-12345678-1234-AAAA-BBBB-abcdabcdabcd")
loXmlCred.EmitXmlDecl = .F.
loXmlCred.EmitCompact = .T.
loReq.AddHeader("X-DocuSign-Authentication",loXmlCred.GetXml())
// Don't worry about Host or Content-Length headers, Chilkat automatically adds them...
// Build the XML for the 1st body part..
loXml = createobject("CkXml")
loXml.Tag = "envelopeDefinition"
loXml.AddAttribute("xmlns","http://www.docusign.com/restapi")
loXml.UpdateChildContent("emailSubject","Signature Request: Test Test:001019:033611")
loXml.UpdateChildContent("status","sent")
loXml.UpdateChildContent("documents|document|documentId","1")
loXml.UpdateChildContent("documents|document|name","001019_TestTest_RetailDeals_163357")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostEmail","admin@chilkatsoft.com")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostName","Chilkat Admin")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerName","Test Test")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|recipientId","1")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|routingOrder","1")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerEmail","test@tyest.com")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorString","\\SDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorString","\\OSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorString","\\OPSSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|scaleValue","0.7")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorString","\\PSSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|scaleValue","0.7")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorString","\\IDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorString","\\OIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorString","\\OPSIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|scaleValue","0.5")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorString","\\PSIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|scaleValue","0.5")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostEmail","admin@chilkatsoft.com")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostName","Chilkat Admin")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|signerName","Dealer Representative")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|recipientId","2")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|routingOrder","2")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorString","\\DSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorString","\\DOSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorString","\\DIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorString","\\DOIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|optional","True")
loXml.EmitXmlDecl = .F.
? loXml.GetXml()
loXml.EmitCompact = .T.
loReq.AddStringForUpload2("","",loXml.GetXml(),"utf-8","application/xml")
loReq.AddFileForUpload2("","qa_data/pdf/signatureForm.pdf","application/pdf")
loReq.AddSubHeader(1,"Content-Disposition",'file; filename="signatureForm.pdf";documentid=1')
loHttp = createobject("CkHttp")
loHttp.SessionLogFilename = "qa_output/log.txt"
loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpSReq("na2.docusign.net",443,.T.,loReq,loResp)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loReq
release loXmlCred
release loXml
release loHttp
release loResp
return
endif
if (loResp.StatusCode <> 201) then
? loResp.BodyStr
? "Response status code: " + str(loResp.StatusCode)
? "Failed."
release loReq
release loXmlCred
release loXml
release loHttp
release loResp
return
endif
// Examine the response..
loXml.LoadXml(loResp.BodyStr)
lcEnvelopeId = loXml.GetChildContent("envelopeId")
? "envelopeId = " + lcEnvelopeId
lcStatus = loXml.GetChildContent("status")
? "status = " + lcStatus
lcStatusDateTime = loXml.GetChildContent("statusDateTime")
? "statusDateTime = " + lcStatusDateTime
lcUri = loXml.GetChildContent("uri")
? "uri = " + lcUri
release loReq
release loXmlCred
release loXml
release loHttp
release loResp