Ruby
Ruby
Send DocuSign XML Request
See more HTTP Misc Examples
Demonstrates how to send a DocuSign XML request.Chilkat Ruby Downloads
require 'chilkat'
success = false
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
req = Chilkat::CkHttpRequest.new()
req.put_HttpVerb("POST")
# Replace "12999999" with your own account number. (12999999 is a ficticious account number)
req.put_Path("/restapi/v2/accounts/12999999/envelopes")
req.AddHeader("Accept","application/xml")
# Don't worry about the boundary string. Chilkat will automatically generate one and include it.
req.put_ContentType("multipart/form-data")
xmlCred = Chilkat::CkXml.new()
xmlCred.put_Tag("DocuSignCredentials")
xmlCred.UpdateChildContent("Username","YOUR_DOCUSIGN_USERNAME")
xmlCred.UpdateChildContent("Password","YOUR_DOCUSIGN_PASSWORD")
xmlCred.UpdateChildContent("IntegratorKey","ABCD-12345678-1234-AAAA-BBBB-abcdabcdabcd")
xmlCred.put_EmitXmlDecl(false)
xmlCred.put_EmitCompact(true)
req.AddHeader("X-DocuSign-Authentication",xmlCred.getXml())
# Don't worry about Host or Content-Length headers, Chilkat automatically adds them...
# Build the XML for the 1st body part..
xml = Chilkat::CkXml.new()
xml.put_Tag("envelopeDefinition")
xml.AddAttribute("xmlns","http://www.docusign.com/restapi")
xml.UpdateChildContent("emailSubject","Signature Request: Test Test:001019:033611")
xml.UpdateChildContent("status","sent")
xml.UpdateChildContent("documents|document|documentId","1")
xml.UpdateChildContent("documents|document|name","001019_TestTest_RetailDeals_163357")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostEmail","admin@chilkatsoft.com")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostName","Chilkat Admin")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerName","Test Test")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|recipientId","1")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|routingOrder","1")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerEmail","test@tyest.com")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorString","\\SDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|optional","False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorString","\\OSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|optional","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorString","\\OPSSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|optional","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|scaleValue","0.7")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorString","\\PSSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|optional","False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|scaleValue","0.7")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorString","\\IDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|optional","False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorString","\\OIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|optional","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorString","\\OPSIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|optional","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|scaleValue","0.5")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorString","\\PSIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|optional","False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|scaleValue","0.5")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostEmail","admin@chilkatsoft.com")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostName","Chilkat Admin")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|signerName","Dealer Representative")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|recipientId","2")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|routingOrder","2")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorString","\\DSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|optional","False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorString","\\DOSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|optional","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorString","\\DIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|optional","False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent","True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorString","\\DOIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|optional","True")
xml.put_EmitXmlDecl(false)
print xml.getXml() + "\n";
xml.put_EmitCompact(true)
req.AddStringForUpload2("","",xml.getXml(),"utf-8","application/xml")
req.AddFileForUpload2("","qa_data/pdf/signatureForm.pdf","application/pdf")
req.AddSubHeader(1,"Content-Disposition","file; filename=\"signatureForm.pdf\";documentid=1")
http = Chilkat::CkHttp.new()
http.put_SessionLogFilename("qa_output/log.txt")
resp = Chilkat::CkHttpResponse.new()
success = http.HttpSReq("na2.docusign.net",443,true,req,resp)
if (success == false)
print http.lastErrorText() + "\n";
exit
end
if (resp.get_StatusCode() != 201)
print resp.bodyStr() + "\n";
print "Response status code: " + resp.get_StatusCode().to_s() + "\n";
print "Failed." + "\n";
exit
end
# Examine the response..
xml.LoadXml(resp.bodyStr())
envelopeId = xml.getChildContent("envelopeId")
print "envelopeId = " + envelopeId + "\n";
status = xml.getChildContent("status")
print "status = " + status + "\n";
statusDateTime = xml.getChildContent("statusDateTime")
print "statusDateTime = " + statusDateTime + "\n";
uri = xml.getChildContent("uri")
print "uri = " + uri + "\n";