Visual FoxPro
Visual FoxPro
Send DocuSign XML Request
See more HTTP Misc Examples
Demonstrates how to send a DocuSign XML request.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loReq
LOCAL loXmlCred
LOCAL loXml
LOCAL loHttp
LOCAL loResp
LOCAL lcEnvelopeId
LOCAL lcStatus
LOCAL lcStatusDateTime
LOCAL lcUri
lnSuccess = 0
* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loReq = CreateObject('Chilkat.HttpRequest')
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('Chilkat.Xml')
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 = 0
loXmlCred.EmitCompact = 1
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('Chilkat.Xml')
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 = 0
? loXml.GetXml()
loXml.EmitCompact = 1
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('Chilkat.Http')
loHttp.SessionLogFilename = "qa_output/log.txt"
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpSReq("na2.docusign.net",443,1,loReq,loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loReq
RELEASE loXmlCred
RELEASE loXml
RELEASE loHttp
RELEASE loResp
CANCEL
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
CANCEL
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