Last active
December 14, 2015 19:49
-
-
Save Ergin008/5139260 to your computer and use it in GitHub Desktop.
add text to description
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Input your info here: | |
$email = "***"; // your account email | |
$password = "***"; // your account password | |
$integratorKey = "***"; // your account integrator key, found on (Preferences -> API page) | |
$recipientName = "***"; // provide a recipient (signer) name | |
$documentName = "***"; // copy document with same name into this directory! | |
// construct the authentication header: | |
$header = "<DocuSignCredentials><Username>" . $email . "</Username><Password>" . $password . "</Password><IntegratorKey>" . $integratorKey . "</IntegratorKey></DocuSignCredentials>"; | |
///////////////////////////////////////////////////////////////////////////////////////////////// | |
// STEP 1 - Login (to retrieve baseUrl and accountId) | |
///////////////////////////////////////////////////////////////////////////////////////////////// | |
$url = "https://demo.docusign.net/restapi/v2/login_information"; | |
$curl = curl_init($url); | |
curl_setopt($curl, CURLOPT_HEADER, false); | |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); | |
curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-DocuSign-Authentication: $header")); | |
$json_response = curl_exec($curl); | |
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); | |
if ( $status != 200 ) { | |
echo "error calling webservice, status is:" . $status; | |
exit(-1); | |
} | |
$response = json_decode($json_response, true); | |
$accountId = $response["loginAccounts"][0]["accountId"]; | |
$baseUrl = $response["loginAccounts"][0]["baseUrl"]; | |
curl_close($curl); | |
//--- display results | |
echo "\naccountId = " . $accountId . "\nbaseUrl = " . $baseUrl . "\n"; | |
///////////////////////////////////////////////////////////////////////////////////////////////// | |
// STEP 2 - Create an envelope with one recipient, one tab, and one document and send | |
///////////////////////////////////////////////////////////////////////////////////////////////// | |
// the following request body will place 1 signature tab on the document you supply, located | |
// 100 pixels to the right and 100 pixels down from the top left of the document | |
$data = array ( | |
"emailSubject" => "DocuSign API - Signature Request on Document", | |
"documents" => array( array( "documentId" => "1", "name" => $documentName)), | |
"recipients" => array( "signers" => array( | |
array( "email" => $email, | |
"name" => $recipientName, | |
"recipientId" => "1", | |
"tabs" => array( | |
"signHereTabs" => array( | |
array( "xPosition" => "100", | |
"yPosition" => "100", | |
"documentId" => "1", | |
"pageNumber" => "1" ) | |
)) | |
)) | |
), | |
"status" => "sent" | |
); | |
$data_string = json_encode($data); | |
$file_contents = file_get_contents($documentName); | |
$requestBody = "\r\n" | |
."\r\n" | |
."--myboundary\r\n" | |
."Content-Type: application/json\r\n" | |
."Content-Disposition: form-data\r\n" | |
."\r\n" | |
."$data_string\r\n" | |
."--myboundary\r\n" | |
."Content-Type:application/pdf\r\n" | |
."Content-Disposition: file; filename=\"$documentName\"; documentid=1 \r\n" | |
."\r\n" | |
."$file_contents\r\n" | |
."--myboundary--\r\n" | |
."\r\n"; | |
// *** append "/envelopes" to baseUrl and as signature request endpoint | |
$curl = curl_init($baseUrl . "/envelopes" ); | |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); | |
curl_setopt($curl, CURLOPT_POST, true); | |
curl_setopt($curl, CURLOPT_POSTFIELDS, $requestBody); | |
curl_setopt($curl, CURLOPT_HTTPHEADER, array( | |
'Content-Type: multipart/form-data;boundary=myboundary', | |
'Content-Length: ' . strlen($requestBody), | |
"X-DocuSign-Authentication: $header" ) | |
); | |
$json_response = curl_exec($curl); | |
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); | |
if ( $status != 201 ) { | |
echo "error calling webservice, status is:" . $status . "\nerror text is --> "; | |
print_r($json_response); echo "\n"; | |
exit(-1); | |
} | |
$response = json_decode($json_response, true); | |
$envelopeId = $response["envelopeId"]; | |
//--- display results | |
echo "Document is sent! Envelope ID = " . $envelopeId . "\n\n"; | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment