PHP ActiveX
PHP ActiveX
Send DocuSign XML Request
See more HTTP Misc Examples
Demonstrates how to send a DocuSign XML request.Chilkat PHP ActiveX Downloads
<?php
$success = 0;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$req = new COM("Chilkat.HttpRequest");
$req->HttpVerb = 'POST';
// Replace "12999999" with your own account number. (12999999 is a ficticious account number)
$req->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->ContentType = 'multipart/form-data';
$xmlCred = new COM("Chilkat.Xml");
$xmlCred->Tag = 'DocuSignCredentials';
$xmlCred->UpdateChildContent('Username','YOUR_DOCUSIGN_USERNAME');
$xmlCred->UpdateChildContent('Password','YOUR_DOCUSIGN_PASSWORD');
$xmlCred->UpdateChildContent('IntegratorKey','ABCD-12345678-1234-AAAA-BBBB-abcdabcdabcd');
$xmlCred->EmitXmlDecl = 0;
$xmlCred->EmitCompact = 1;
$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 = new COM("Chilkat.Xml");
$xml->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->EmitXmlDecl = 0;
print $xml->getXml() . "\n";
$xml->EmitCompact = 1;
$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 = new COM("Chilkat.Http");
$http->SessionLogFilename = 'qa_output/log.txt';
$resp = new COM("Chilkat.HttpResponse");
$success = $http->HttpSReq('na2.docusign.net',443,1,$req,$resp);
if ($success == 0) {
print $http->LastErrorText . "\n";
exit;
}
if ($resp->StatusCode != 201) {
print $resp->BodyStr . "\n";
print 'Response status code: ' . $resp->StatusCode . "\n";
print 'Failed.' . "\n";
exit;
}
// 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";
?>